@leofcoin/workers 1.5.43 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/exports/binary-worker-BxQdEW3s.js +672 -0
- package/exports/binary-worker.d.ts +11 -0
- package/exports/binary-worker.js +1 -0
- package/exports/block-worker.js +7 -7
- package/exports/browser/binary-worker-BxQdEW3s.js +672 -0
- package/exports/browser/binary-worker.js +1 -0
- package/exports/browser/block-worker.js +7 -7
- package/exports/browser/machine-worker.js +139 -1192
- package/exports/browser/{worker-BDTWOCzS.js → proposal.proto-8zgMfutf.js} +205 -362
- package/exports/machine-worker.js +139 -1192
- package/exports/{worker-BDTWOCzS.js → proposal.proto-8zgMfutf.js} +205 -362
- package/package.json +9 -4
- package/src/block-worker.js +1 -1
- package/src/pool-worker.js +1 -1
- package/src/transaction-worker.js +1 -1
|
@@ -1,938 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { B as BinaryWorker, a as encodeValue } from './binary-worker-BxQdEW3s.js';
|
|
2
|
+
import { B as BinaryFormat, b as proto, j as jsonStringifyBigInt } from './proposal.proto-8zgMfutf.js';
|
|
3
|
+
import { instrumentContractSource, ExecutionMeter, DEFAULT_CONTRACT_EXECUTION_UNITS } from './execution-meter.js';
|
|
4
|
+
import { DeterministicCrypto, createCryptoBridge } from './deterministic-crypto.js';
|
|
4
5
|
|
|
5
|
-
class ContractMessage extends
|
|
6
|
+
class ContractMessage extends BinaryFormat {
|
|
6
7
|
get messageName() {
|
|
7
8
|
return 'ContractMessage';
|
|
8
9
|
}
|
|
9
10
|
constructor(buffer) {
|
|
10
11
|
if (buffer instanceof ContractMessage)
|
|
11
12
|
return buffer;
|
|
13
|
+
if (buffer && typeof buffer === 'object' && !(buffer instanceof Uint8Array) && typeof buffer.contract === 'string')
|
|
14
|
+
buffer = { ...buffer, contract: new TextEncoder().encode(buffer.contract) };
|
|
12
15
|
super(buffer, proto, { name: 'contract-message' });
|
|
13
16
|
}
|
|
14
17
|
}
|
|
15
18
|
|
|
16
|
-
class TransactionMessage extends FormatInterface {
|
|
17
|
-
get messageName() {
|
|
18
|
-
return 'TransactionMessage';
|
|
19
|
-
}
|
|
20
|
-
constructor(buffer) {
|
|
21
|
-
if (buffer instanceof TransactionMessage)
|
|
22
|
-
return buffer;
|
|
23
|
-
const name = 'transaction-message';
|
|
24
|
-
super(buffer, proto$1, { name });
|
|
25
|
-
}
|
|
26
|
-
beforeHashing(decoded) {
|
|
27
|
-
decoded = super.beforeHashing(decoded);
|
|
28
|
-
delete decoded.signature;
|
|
29
|
-
delete decoded.priority;
|
|
30
|
-
delete decoded.dependsOn;
|
|
31
|
-
return decoded;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/* Do NOT modify this file; see /src.ts/_admin/update-version.ts */
|
|
36
|
-
/**
|
|
37
|
-
* The current version of Ethers.
|
|
38
|
-
*/
|
|
39
|
-
const version = "6.17.0";
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Property helper functions.
|
|
43
|
-
*
|
|
44
|
-
* @_subsection api/utils:Properties [about-properties]
|
|
45
|
-
*/
|
|
46
|
-
/**
|
|
47
|
-
* Assigns the %%values%% to %%target%% as read-only values.
|
|
48
|
-
*
|
|
49
|
-
* It %%types%% is specified, the values are checked.
|
|
50
|
-
*/
|
|
51
|
-
function defineProperties(target, values, types) {
|
|
52
|
-
for (let key in values) {
|
|
53
|
-
let value = values[key];
|
|
54
|
-
Object.defineProperty(target, key, { enumerable: true, value, writable: false });
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* All errors in ethers include properties to ensure they are both
|
|
60
|
-
* human-readable (i.e. ``.message``) and machine-readable (i.e. ``.code``).
|
|
61
|
-
*
|
|
62
|
-
* The [[isError]] function can be used to check the error ``code`` and
|
|
63
|
-
* provide a type guard for the properties present on that error interface.
|
|
64
|
-
*
|
|
65
|
-
* @_section: api/utils/errors:Errors [about-errors]
|
|
66
|
-
*/
|
|
67
|
-
function stringify(value, seen) {
|
|
68
|
-
if (value == null) {
|
|
69
|
-
return "null";
|
|
70
|
-
}
|
|
71
|
-
if (seen == null) {
|
|
72
|
-
seen = new Set();
|
|
73
|
-
}
|
|
74
|
-
if (typeof (value) === "object") {
|
|
75
|
-
if (seen.has(value)) {
|
|
76
|
-
return "[Circular]";
|
|
77
|
-
}
|
|
78
|
-
seen.add(value);
|
|
79
|
-
}
|
|
80
|
-
if (Array.isArray(value)) {
|
|
81
|
-
return "[ " + (value.map((v) => stringify(v, seen))).join(", ") + " ]";
|
|
82
|
-
}
|
|
83
|
-
if (value instanceof Uint8Array) {
|
|
84
|
-
const HEX = "0123456789abcdef";
|
|
85
|
-
let result = "0x";
|
|
86
|
-
for (let i = 0; i < value.length; i++) {
|
|
87
|
-
result += HEX[value[i] >> 4];
|
|
88
|
-
result += HEX[value[i] & 0xf];
|
|
89
|
-
}
|
|
90
|
-
return result;
|
|
91
|
-
}
|
|
92
|
-
if (typeof (value) === "object" && typeof (value.toJSON) === "function") {
|
|
93
|
-
return stringify(value.toJSON(), seen);
|
|
94
|
-
}
|
|
95
|
-
switch (typeof (value)) {
|
|
96
|
-
case "boolean":
|
|
97
|
-
case "number":
|
|
98
|
-
case "symbol":
|
|
99
|
-
return value.toString();
|
|
100
|
-
case "bigint":
|
|
101
|
-
return BigInt(value).toString();
|
|
102
|
-
case "string":
|
|
103
|
-
return JSON.stringify(value);
|
|
104
|
-
case "object": {
|
|
105
|
-
const keys = Object.keys(value);
|
|
106
|
-
keys.sort();
|
|
107
|
-
return "{ " + keys.map((k) => `${stringify(k, seen)}: ${stringify(value[k], seen)}`).join(", ") + " }";
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return `[ COULD NOT SERIALIZE ]`;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Returns a new Error configured to the format ethers emits errors, with
|
|
114
|
-
* the %%message%%, [[api:ErrorCode]] %%code%% and additional properties
|
|
115
|
-
* for the corresponding EthersError.
|
|
116
|
-
*
|
|
117
|
-
* Each error in ethers includes the version of ethers, a
|
|
118
|
-
* machine-readable [[ErrorCode]], and depending on %%code%%, additional
|
|
119
|
-
* required properties. The error message will also include the %%message%%,
|
|
120
|
-
* ethers version, %%code%% and all additional properties, serialized.
|
|
121
|
-
*/
|
|
122
|
-
function makeError(message, code, info) {
|
|
123
|
-
let shortMessage = message;
|
|
124
|
-
{
|
|
125
|
-
const details = [];
|
|
126
|
-
if (info) {
|
|
127
|
-
if ("message" in info || "code" in info || "name" in info) {
|
|
128
|
-
throw new Error(`value will overwrite populated values: ${stringify(info)}`);
|
|
129
|
-
}
|
|
130
|
-
for (const key in info) {
|
|
131
|
-
if (key === "shortMessage") {
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
const value = (info[key]);
|
|
135
|
-
// try {
|
|
136
|
-
details.push(key + "=" + stringify(value));
|
|
137
|
-
// } catch (error: any) {
|
|
138
|
-
// console.log("MMM", error.message);
|
|
139
|
-
// details.push(key + "=[could not serialize object]");
|
|
140
|
-
// }
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
details.push(`code=${code}`);
|
|
144
|
-
details.push(`version=${version}`);
|
|
145
|
-
if (details.length) {
|
|
146
|
-
message += " (" + details.join(", ") + ")";
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
let error;
|
|
150
|
-
switch (code) {
|
|
151
|
-
case "INVALID_ARGUMENT":
|
|
152
|
-
error = new TypeError(message);
|
|
153
|
-
break;
|
|
154
|
-
case "NUMERIC_FAULT":
|
|
155
|
-
case "BUFFER_OVERRUN":
|
|
156
|
-
error = new RangeError(message);
|
|
157
|
-
break;
|
|
158
|
-
default:
|
|
159
|
-
error = new Error(message);
|
|
160
|
-
}
|
|
161
|
-
defineProperties(error, { code });
|
|
162
|
-
if (info) {
|
|
163
|
-
Object.assign(error, info);
|
|
164
|
-
}
|
|
165
|
-
if (error.shortMessage == null) {
|
|
166
|
-
defineProperties(error, { shortMessage });
|
|
167
|
-
}
|
|
168
|
-
return error;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Throws an EthersError with %%message%%, %%code%% and additional error
|
|
172
|
-
* %%info%% when %%check%% is falsish..
|
|
173
|
-
*
|
|
174
|
-
* @see [[api:makeError]]
|
|
175
|
-
*/
|
|
176
|
-
function assert(check, message, code, info) {
|
|
177
|
-
if (!check) {
|
|
178
|
-
throw makeError(message, code, info);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* A simple helper to simply ensuring provided arguments match expected
|
|
183
|
-
* constraints, throwing if not.
|
|
184
|
-
*
|
|
185
|
-
* In TypeScript environments, the %%check%% has been asserted true, so
|
|
186
|
-
* any further code does not need additional compile-time checks.
|
|
187
|
-
*/
|
|
188
|
-
function assertArgument(check, message, name, value) {
|
|
189
|
-
assert(check, message, "INVALID_ARGUMENT", { argument: name, value: value });
|
|
190
|
-
}
|
|
191
|
-
["NFD", "NFC", "NFKD", "NFKC"].reduce((accum, form) => {
|
|
192
|
-
try {
|
|
193
|
-
// General test for normalize
|
|
194
|
-
/* c8 ignore start */
|
|
195
|
-
if ("test".normalize(form) !== "test") {
|
|
196
|
-
throw new Error("bad");
|
|
197
|
-
}
|
|
198
|
-
;
|
|
199
|
-
/* c8 ignore stop */
|
|
200
|
-
if (form === "NFD") {
|
|
201
|
-
const check = String.fromCharCode(0xe9).normalize("NFD");
|
|
202
|
-
const expected = String.fromCharCode(0x65, 0x0301);
|
|
203
|
-
/* c8 ignore start */
|
|
204
|
-
if (check !== expected) {
|
|
205
|
-
throw new Error("broken");
|
|
206
|
-
}
|
|
207
|
-
/* c8 ignore stop */
|
|
208
|
-
}
|
|
209
|
-
accum.push(form);
|
|
210
|
-
}
|
|
211
|
-
catch (error) { }
|
|
212
|
-
return accum;
|
|
213
|
-
}, []);
|
|
214
|
-
/**
|
|
215
|
-
* Many classes use file-scoped values to guard the constructor,
|
|
216
|
-
* making it effectively private. This facilitates that pattern
|
|
217
|
-
* by ensuring the %%givenGaurd%% matches the file-scoped %%guard%%,
|
|
218
|
-
* throwing if not, indicating the %%className%% if provided.
|
|
219
|
-
*/
|
|
220
|
-
function assertPrivate(givenGuard, guard, className) {
|
|
221
|
-
if (givenGuard !== guard) {
|
|
222
|
-
let method = className, operation = "new";
|
|
223
|
-
{
|
|
224
|
-
method += ".";
|
|
225
|
-
operation += " " + className;
|
|
226
|
-
}
|
|
227
|
-
assert(false, `private constructor; use ${method}from* methods`, "UNSUPPORTED_OPERATION", {
|
|
228
|
-
operation
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* Some data helpers.
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
* @_subsection api/utils:Data Helpers [about-data]
|
|
238
|
-
*/
|
|
239
|
-
function _getBytes(value, name, copy) {
|
|
240
|
-
if (value instanceof Uint8Array) {
|
|
241
|
-
return value;
|
|
242
|
-
}
|
|
243
|
-
if (typeof (value) === "string" && (value.length % 2) === 0 &&
|
|
244
|
-
value.match(/^0x[0-9a-f]*$/i)) {
|
|
245
|
-
const result = new Uint8Array((value.length - 2) / 2);
|
|
246
|
-
let offset = 2;
|
|
247
|
-
for (let i = 0; i < result.length; i++) {
|
|
248
|
-
result[i] = parseInt(value.substring(offset, offset + 2), 16);
|
|
249
|
-
offset += 2;
|
|
250
|
-
}
|
|
251
|
-
return result;
|
|
252
|
-
}
|
|
253
|
-
assertArgument(false, "invalid BytesLike value", name, value);
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Get a typed Uint8Array for %%value%%. If already a Uint8Array
|
|
257
|
-
* the original %%value%% is returned; if a copy is required use
|
|
258
|
-
* [[getBytesCopy]].
|
|
259
|
-
*
|
|
260
|
-
* @see: getBytesCopy
|
|
261
|
-
*/
|
|
262
|
-
function getBytes(value, name) {
|
|
263
|
-
return _getBytes(value, name);
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* Some mathematic operations.
|
|
268
|
-
*
|
|
269
|
-
* @_subsection: api/utils:Math Helpers [about-maths]
|
|
270
|
-
*/
|
|
271
|
-
const BN_0$1 = BigInt(0);
|
|
272
|
-
const BN_1$1 = BigInt(1);
|
|
273
|
-
//const BN_Max256 = (BN_1 << BigInt(256)) - BN_1;
|
|
274
|
-
// IEEE 754 support 53-bits of mantissa
|
|
275
|
-
const maxValue = 0x1fffffffffffff;
|
|
276
|
-
/**
|
|
277
|
-
* Convert %%value%% from a twos-compliment representation of %%width%%
|
|
278
|
-
* bits to its value.
|
|
279
|
-
*
|
|
280
|
-
* If the highest bit is ``1``, the result will be negative.
|
|
281
|
-
*/
|
|
282
|
-
function fromTwos(_value, _width) {
|
|
283
|
-
const value = getUint(_value, "value");
|
|
284
|
-
const width = BigInt(getNumber(_width, "width"));
|
|
285
|
-
assert((value >> width) === BN_0$1, "overflow", "NUMERIC_FAULT", {
|
|
286
|
-
operation: "fromTwos", fault: "overflow", value: _value
|
|
287
|
-
});
|
|
288
|
-
// Top bit set; treat as a negative value
|
|
289
|
-
if (value >> (width - BN_1$1)) {
|
|
290
|
-
const mask = (BN_1$1 << width) - BN_1$1;
|
|
291
|
-
return -(((~value) & mask) + BN_1$1);
|
|
292
|
-
}
|
|
293
|
-
return value;
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Mask %%value%% with a bitmask of %%bits%% ones.
|
|
297
|
-
*/
|
|
298
|
-
function mask(_value, _bits) {
|
|
299
|
-
const value = getUint(_value, "value");
|
|
300
|
-
const bits = BigInt(getNumber(_bits, "bits"));
|
|
301
|
-
return value & ((BN_1$1 << bits) - BN_1$1);
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Gets a BigInt from %%value%%. If it is an invalid value for
|
|
305
|
-
* a BigInt, then an ArgumentError will be thrown for %%name%%.
|
|
306
|
-
*/
|
|
307
|
-
function getBigInt(value, name) {
|
|
308
|
-
switch (typeof (value)) {
|
|
309
|
-
case "bigint": return value;
|
|
310
|
-
case "number":
|
|
311
|
-
assertArgument(Number.isInteger(value), "underflow", name || "value", value);
|
|
312
|
-
assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value);
|
|
313
|
-
return BigInt(value);
|
|
314
|
-
case "string":
|
|
315
|
-
try {
|
|
316
|
-
if (value === "") {
|
|
317
|
-
throw new Error("empty string");
|
|
318
|
-
}
|
|
319
|
-
if (value[0] === "-" && value[1] !== "-") {
|
|
320
|
-
return -BigInt(value.substring(1));
|
|
321
|
-
}
|
|
322
|
-
return BigInt(value);
|
|
323
|
-
}
|
|
324
|
-
catch (e) {
|
|
325
|
-
assertArgument(false, `invalid BigNumberish string: ${e.message}`, name || "value", value);
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
assertArgument(false, "invalid BigNumberish value", name || "value", value);
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Returns %%value%% as a bigint, validating it is valid as a bigint
|
|
332
|
-
* value and that it is positive.
|
|
333
|
-
*/
|
|
334
|
-
function getUint(value, name) {
|
|
335
|
-
const result = getBigInt(value, name);
|
|
336
|
-
assert(result >= BN_0$1, "unsigned value cannot be negative", "NUMERIC_FAULT", {
|
|
337
|
-
fault: "overflow", operation: "getUint", value
|
|
338
|
-
});
|
|
339
|
-
return result;
|
|
340
|
-
}
|
|
341
|
-
const Nibbles = "0123456789abcdef";
|
|
342
|
-
/*
|
|
343
|
-
* Converts %%value%% to a BigInt. If %%value%% is a Uint8Array, it
|
|
344
|
-
* is treated as Big Endian data.
|
|
345
|
-
*/
|
|
346
|
-
function toBigInt(value) {
|
|
347
|
-
if (value instanceof Uint8Array) {
|
|
348
|
-
let result = "0x0";
|
|
349
|
-
for (const v of value) {
|
|
350
|
-
result += Nibbles[v >> 4];
|
|
351
|
-
result += Nibbles[v & 0x0f];
|
|
352
|
-
}
|
|
353
|
-
return BigInt(result);
|
|
354
|
-
}
|
|
355
|
-
return getBigInt(value);
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* Gets a //number// from %%value%%. If it is an invalid value for
|
|
359
|
-
* a //number//, then an ArgumentError will be thrown for %%name%%.
|
|
360
|
-
*/
|
|
361
|
-
function getNumber(value, name) {
|
|
362
|
-
switch (typeof (value)) {
|
|
363
|
-
case "bigint":
|
|
364
|
-
assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value);
|
|
365
|
-
return Number(value);
|
|
366
|
-
case "number":
|
|
367
|
-
assertArgument(Number.isInteger(value), "underflow", name || "value", value);
|
|
368
|
-
assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value);
|
|
369
|
-
return value;
|
|
370
|
-
case "string":
|
|
371
|
-
try {
|
|
372
|
-
if (value === "") {
|
|
373
|
-
throw new Error("empty string");
|
|
374
|
-
}
|
|
375
|
-
return getNumber(BigInt(value), name);
|
|
376
|
-
}
|
|
377
|
-
catch (e) {
|
|
378
|
-
assertArgument(false, `invalid numeric string: ${e.message}`, name || "value", value);
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
assertArgument(false, "invalid numeric value", name || "value", value);
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
/**
|
|
385
|
-
* The **FixedNumber** class permits using values with decimal places,
|
|
386
|
-
* using fixed-pont math.
|
|
387
|
-
*
|
|
388
|
-
* Fixed-point math is still based on integers under-the-hood, but uses an
|
|
389
|
-
* internal offset to store fractional components below, and each operation
|
|
390
|
-
* corrects for this after each operation.
|
|
391
|
-
*
|
|
392
|
-
* @_section: api/utils/fixed-point-math:Fixed-Point Maths [about-fixed-point-math]
|
|
393
|
-
*/
|
|
394
|
-
const BN_N1 = BigInt(-1);
|
|
395
|
-
const BN_0 = BigInt(0);
|
|
396
|
-
const BN_1 = BigInt(1);
|
|
397
|
-
const BN_5 = BigInt(5);
|
|
398
|
-
const _guard = {};
|
|
399
|
-
// Constant to pull zeros from for multipliers
|
|
400
|
-
let Zeros = "0000";
|
|
401
|
-
while (Zeros.length < 80) {
|
|
402
|
-
Zeros += Zeros;
|
|
403
|
-
}
|
|
404
|
-
// Returns a string "1" followed by decimal "0"s
|
|
405
|
-
function getTens(decimals) {
|
|
406
|
-
let result = Zeros;
|
|
407
|
-
while (result.length < decimals) {
|
|
408
|
-
result += result;
|
|
409
|
-
}
|
|
410
|
-
return BigInt("1" + result.substring(0, decimals));
|
|
411
|
-
}
|
|
412
|
-
function checkValue(val, format, safeOp) {
|
|
413
|
-
const width = BigInt(format.width);
|
|
414
|
-
if (format.signed) {
|
|
415
|
-
const limit = (BN_1 << (width - BN_1));
|
|
416
|
-
assert(safeOp == null || (val >= -limit && val < limit), "overflow", "NUMERIC_FAULT", {
|
|
417
|
-
operation: safeOp, fault: "overflow", value: val
|
|
418
|
-
});
|
|
419
|
-
if (val > BN_0) {
|
|
420
|
-
val = fromTwos(mask(val, width), width);
|
|
421
|
-
}
|
|
422
|
-
else {
|
|
423
|
-
val = -fromTwos(mask(-val, width), width);
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
else {
|
|
427
|
-
const limit = (BN_1 << width);
|
|
428
|
-
assert(safeOp == null || (val >= 0 && val < limit), "overflow", "NUMERIC_FAULT", {
|
|
429
|
-
operation: safeOp, fault: "overflow", value: val
|
|
430
|
-
});
|
|
431
|
-
val = (((val % limit) + limit) % limit) & (limit - BN_1);
|
|
432
|
-
}
|
|
433
|
-
return val;
|
|
434
|
-
}
|
|
435
|
-
function getFormat(value) {
|
|
436
|
-
if (typeof (value) === "number") {
|
|
437
|
-
value = `fixed128x${value}`;
|
|
438
|
-
}
|
|
439
|
-
let signed = true;
|
|
440
|
-
let width = 128;
|
|
441
|
-
let decimals = 18;
|
|
442
|
-
if (typeof (value) === "string") {
|
|
443
|
-
// Parse the format string
|
|
444
|
-
if (value === "fixed") ;
|
|
445
|
-
else if (value === "ufixed") {
|
|
446
|
-
signed = false;
|
|
447
|
-
}
|
|
448
|
-
else {
|
|
449
|
-
const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);
|
|
450
|
-
assertArgument(match, "invalid fixed format", "format", value);
|
|
451
|
-
signed = (match[1] !== "u");
|
|
452
|
-
width = parseInt(match[2]);
|
|
453
|
-
decimals = parseInt(match[3]);
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
else if (value) {
|
|
457
|
-
// Extract the values from the object
|
|
458
|
-
const v = value;
|
|
459
|
-
const check = (key, type, defaultValue) => {
|
|
460
|
-
if (v[key] == null) {
|
|
461
|
-
return defaultValue;
|
|
462
|
-
}
|
|
463
|
-
assertArgument(typeof (v[key]) === type, "invalid fixed format (" + key + " not " + type + ")", "format." + key, v[key]);
|
|
464
|
-
return v[key];
|
|
465
|
-
};
|
|
466
|
-
signed = check("signed", "boolean", signed);
|
|
467
|
-
width = check("width", "number", width);
|
|
468
|
-
decimals = check("decimals", "number", decimals);
|
|
469
|
-
}
|
|
470
|
-
assertArgument((width % 8) === 0, "invalid FixedNumber width (not byte aligned)", "format.width", width);
|
|
471
|
-
assertArgument(decimals <= 80, "invalid FixedNumber decimals (too large)", "format.decimals", decimals);
|
|
472
|
-
const name = (signed ? "" : "u") + "fixed" + String(width) + "x" + String(decimals);
|
|
473
|
-
return { signed, width, decimals, name };
|
|
474
|
-
}
|
|
475
|
-
function toString(val, decimals) {
|
|
476
|
-
let negative = "";
|
|
477
|
-
if (val < BN_0) {
|
|
478
|
-
negative = "-";
|
|
479
|
-
val *= BN_N1;
|
|
480
|
-
}
|
|
481
|
-
let str = val.toString();
|
|
482
|
-
// No decimal point for whole values
|
|
483
|
-
if (decimals === 0) {
|
|
484
|
-
return (negative + str);
|
|
485
|
-
}
|
|
486
|
-
// Pad out to the whole component (including a whole digit)
|
|
487
|
-
while (str.length <= decimals) {
|
|
488
|
-
str = Zeros + str;
|
|
489
|
-
}
|
|
490
|
-
// Insert the decimal point
|
|
491
|
-
const index = str.length - decimals;
|
|
492
|
-
str = str.substring(0, index) + "." + str.substring(index);
|
|
493
|
-
// Trim the whole component (leaving at least one 0)
|
|
494
|
-
while (str[0] === "0" && str[1] !== ".") {
|
|
495
|
-
str = str.substring(1);
|
|
496
|
-
}
|
|
497
|
-
// Trim the decimal component (leaving at least one 0)
|
|
498
|
-
while (str[str.length - 1] === "0" && str[str.length - 2] !== ".") {
|
|
499
|
-
str = str.substring(0, str.length - 1);
|
|
500
|
-
}
|
|
501
|
-
return (negative + str);
|
|
502
|
-
}
|
|
503
|
-
/**
|
|
504
|
-
* A FixedNumber represents a value over its [[FixedFormat]]
|
|
505
|
-
* arithmetic field.
|
|
506
|
-
*
|
|
507
|
-
* A FixedNumber can be used to perform math, losslessly, on
|
|
508
|
-
* values which have decmial places.
|
|
509
|
-
*
|
|
510
|
-
* A FixedNumber has a fixed bit-width to store values in, and stores all
|
|
511
|
-
* values internally by multiplying the value by 10 raised to the power of
|
|
512
|
-
* %%decimals%%.
|
|
513
|
-
*
|
|
514
|
-
* If operations are performed that cause a value to grow too high (close to
|
|
515
|
-
* positive infinity) or too low (close to negative infinity), the value
|
|
516
|
-
* is said to //overflow//.
|
|
517
|
-
*
|
|
518
|
-
* For example, an 8-bit signed value, with 0 decimals may only be within
|
|
519
|
-
* the range ``-128`` to ``127``; so ``-128 - 1`` will overflow and become
|
|
520
|
-
* ``127``. Likewise, ``127 + 1`` will overflow and become ``-127``.
|
|
521
|
-
*
|
|
522
|
-
* Many operation have a normal and //unsafe// variant. The normal variant
|
|
523
|
-
* will throw a [[NumericFaultError]] on any overflow, while the //unsafe//
|
|
524
|
-
* variant will silently allow overflow, corrupting its value value.
|
|
525
|
-
*
|
|
526
|
-
* If operations are performed that cause a value to become too small
|
|
527
|
-
* (close to zero), the value loses precison and is said to //underflow//.
|
|
528
|
-
*
|
|
529
|
-
* For example, a value with 1 decimal place may store a number as small
|
|
530
|
-
* as ``0.1``, but the value of ``0.1 / 2`` is ``0.05``, which cannot fit
|
|
531
|
-
* into 1 decimal place, so underflow occurs which means precision is lost
|
|
532
|
-
* and the value becomes ``0``.
|
|
533
|
-
*
|
|
534
|
-
* Some operations have a normal and //signalling// variant. The normal
|
|
535
|
-
* variant will silently ignore underflow, while the //signalling// variant
|
|
536
|
-
* will thow a [[NumericFaultError]] on underflow.
|
|
537
|
-
*/
|
|
538
|
-
class FixedNumber {
|
|
539
|
-
/**
|
|
540
|
-
* The specific fixed-point arithmetic field for this value.
|
|
541
|
-
*/
|
|
542
|
-
format;
|
|
543
|
-
#format;
|
|
544
|
-
// The actual value (accounting for decimals)
|
|
545
|
-
#val;
|
|
546
|
-
// A base-10 value to multiple values by to maintain the magnitude
|
|
547
|
-
#tens;
|
|
548
|
-
/**
|
|
549
|
-
* This is a property so console.log shows a human-meaningful value.
|
|
550
|
-
*
|
|
551
|
-
* @private
|
|
552
|
-
*/
|
|
553
|
-
_value;
|
|
554
|
-
// Use this when changing this file to get some typing info,
|
|
555
|
-
// but then switch to any to mask the internal type
|
|
556
|
-
//constructor(guard: any, value: bigint, format: _FixedFormat) {
|
|
557
|
-
/**
|
|
558
|
-
* @private
|
|
559
|
-
*/
|
|
560
|
-
constructor(guard, value, format) {
|
|
561
|
-
assertPrivate(guard, _guard, "FixedNumber");
|
|
562
|
-
this.#val = value;
|
|
563
|
-
this.#format = format;
|
|
564
|
-
const _value = toString(value, format.decimals);
|
|
565
|
-
defineProperties(this, { format: format.name, _value });
|
|
566
|
-
this.#tens = getTens(format.decimals);
|
|
567
|
-
}
|
|
568
|
-
/**
|
|
569
|
-
* If true, negative values are permitted, otherwise only
|
|
570
|
-
* positive values and zero are allowed.
|
|
571
|
-
*/
|
|
572
|
-
get signed() { return this.#format.signed; }
|
|
573
|
-
/**
|
|
574
|
-
* The number of bits available to store the value.
|
|
575
|
-
*/
|
|
576
|
-
get width() { return this.#format.width; }
|
|
577
|
-
/**
|
|
578
|
-
* The number of decimal places in the fixed-point arithment field.
|
|
579
|
-
*/
|
|
580
|
-
get decimals() { return this.#format.decimals; }
|
|
581
|
-
/**
|
|
582
|
-
* The value as an integer, based on the smallest unit the
|
|
583
|
-
* [[decimals]] allow.
|
|
584
|
-
*/
|
|
585
|
-
get value() { return this.#val; }
|
|
586
|
-
#checkFormat(other) {
|
|
587
|
-
assertArgument(this.format === other.format, "incompatible format; use fixedNumber.toFormat", "other", other);
|
|
588
|
-
}
|
|
589
|
-
#checkValue(val, safeOp) {
|
|
590
|
-
/*
|
|
591
|
-
const width = BigInt(this.width);
|
|
592
|
-
if (this.signed) {
|
|
593
|
-
const limit = (BN_1 << (width - BN_1));
|
|
594
|
-
assert(safeOp == null || (val >= -limit && val < limit), "overflow", "NUMERIC_FAULT", {
|
|
595
|
-
operation: <string>safeOp, fault: "overflow", value: val
|
|
596
|
-
});
|
|
597
|
-
|
|
598
|
-
if (val > BN_0) {
|
|
599
|
-
val = fromTwos(mask(val, width), width);
|
|
600
|
-
} else {
|
|
601
|
-
val = -fromTwos(mask(-val, width), width);
|
|
602
|
-
}
|
|
603
|
-
|
|
604
|
-
} else {
|
|
605
|
-
const masked = mask(val, width);
|
|
606
|
-
assert(safeOp == null || (val >= 0 && val === masked), "overflow", "NUMERIC_FAULT", {
|
|
607
|
-
operation: <string>safeOp, fault: "overflow", value: val
|
|
608
|
-
});
|
|
609
|
-
val = masked;
|
|
610
|
-
}
|
|
611
|
-
*/
|
|
612
|
-
val = checkValue(val, this.#format, safeOp);
|
|
613
|
-
return new FixedNumber(_guard, val, this.#format);
|
|
614
|
-
}
|
|
615
|
-
#add(o, safeOp) {
|
|
616
|
-
this.#checkFormat(o);
|
|
617
|
-
return this.#checkValue(this.#val + o.#val, safeOp);
|
|
618
|
-
}
|
|
619
|
-
/**
|
|
620
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% added
|
|
621
|
-
* to %%other%%, ignoring overflow.
|
|
622
|
-
*/
|
|
623
|
-
addUnsafe(other) { return this.#add(other); }
|
|
624
|
-
/**
|
|
625
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% added
|
|
626
|
-
* to %%other%%. A [[NumericFaultError]] is thrown if overflow
|
|
627
|
-
* occurs.
|
|
628
|
-
*/
|
|
629
|
-
add(other) { return this.#add(other, "add"); }
|
|
630
|
-
#sub(o, safeOp) {
|
|
631
|
-
this.#checkFormat(o);
|
|
632
|
-
return this.#checkValue(this.#val - o.#val, safeOp);
|
|
633
|
-
}
|
|
634
|
-
/**
|
|
635
|
-
* Returns a new [[FixedNumber]] with the result of %%other%% subtracted
|
|
636
|
-
* from %%this%%, ignoring overflow.
|
|
637
|
-
*/
|
|
638
|
-
subUnsafe(other) { return this.#sub(other); }
|
|
639
|
-
/**
|
|
640
|
-
* Returns a new [[FixedNumber]] with the result of %%other%% subtracted
|
|
641
|
-
* from %%this%%. A [[NumericFaultError]] is thrown if overflow
|
|
642
|
-
* occurs.
|
|
643
|
-
*/
|
|
644
|
-
sub(other) { return this.#sub(other, "sub"); }
|
|
645
|
-
#mul(o, safeOp) {
|
|
646
|
-
this.#checkFormat(o);
|
|
647
|
-
return this.#checkValue((this.#val * o.#val) / this.#tens, safeOp);
|
|
648
|
-
}
|
|
649
|
-
/**
|
|
650
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% multiplied
|
|
651
|
-
* by %%other%%, ignoring overflow and underflow (precision loss).
|
|
652
|
-
*/
|
|
653
|
-
mulUnsafe(other) { return this.#mul(other); }
|
|
654
|
-
/**
|
|
655
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% multiplied
|
|
656
|
-
* by %%other%%. A [[NumericFaultError]] is thrown if overflow
|
|
657
|
-
* occurs.
|
|
658
|
-
*/
|
|
659
|
-
mul(other) { return this.#mul(other, "mul"); }
|
|
660
|
-
/**
|
|
661
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% multiplied
|
|
662
|
-
* by %%other%%. A [[NumericFaultError]] is thrown if overflow
|
|
663
|
-
* occurs or if underflow (precision loss) occurs.
|
|
664
|
-
*/
|
|
665
|
-
mulSignal(other) {
|
|
666
|
-
this.#checkFormat(other);
|
|
667
|
-
const value = this.#val * other.#val;
|
|
668
|
-
assert((value % this.#tens) === BN_0, "precision lost during signalling mul", "NUMERIC_FAULT", {
|
|
669
|
-
operation: "mulSignal", fault: "underflow", value: this
|
|
670
|
-
});
|
|
671
|
-
return this.#checkValue(value / this.#tens, "mulSignal");
|
|
672
|
-
}
|
|
673
|
-
#div(o, safeOp) {
|
|
674
|
-
assert(o.#val !== BN_0, "division by zero", "NUMERIC_FAULT", {
|
|
675
|
-
operation: "div", fault: "divide-by-zero", value: this
|
|
676
|
-
});
|
|
677
|
-
this.#checkFormat(o);
|
|
678
|
-
return this.#checkValue((this.#val * this.#tens) / o.#val, safeOp);
|
|
679
|
-
}
|
|
680
|
-
/**
|
|
681
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% divided
|
|
682
|
-
* by %%other%%, ignoring underflow (precision loss). A
|
|
683
|
-
* [[NumericFaultError]] is thrown if overflow occurs.
|
|
684
|
-
*/
|
|
685
|
-
divUnsafe(other) { return this.#div(other); }
|
|
686
|
-
/**
|
|
687
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% divided
|
|
688
|
-
* by %%other%%, ignoring underflow (precision loss). A
|
|
689
|
-
* [[NumericFaultError]] is thrown if overflow occurs.
|
|
690
|
-
*/
|
|
691
|
-
div(other) { return this.#div(other, "div"); }
|
|
692
|
-
/**
|
|
693
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% divided
|
|
694
|
-
* by %%other%%. A [[NumericFaultError]] is thrown if underflow
|
|
695
|
-
* (precision loss) occurs.
|
|
696
|
-
*/
|
|
697
|
-
divSignal(other) {
|
|
698
|
-
assert(other.#val !== BN_0, "division by zero", "NUMERIC_FAULT", {
|
|
699
|
-
operation: "div", fault: "divide-by-zero", value: this
|
|
700
|
-
});
|
|
701
|
-
this.#checkFormat(other);
|
|
702
|
-
const value = (this.#val * this.#tens);
|
|
703
|
-
assert((value % other.#val) === BN_0, "precision lost during signalling div", "NUMERIC_FAULT", {
|
|
704
|
-
operation: "divSignal", fault: "underflow", value: this
|
|
705
|
-
});
|
|
706
|
-
return this.#checkValue(value / other.#val, "divSignal");
|
|
707
|
-
}
|
|
708
|
-
/**
|
|
709
|
-
* Returns a comparison result between %%this%% and %%other%%.
|
|
710
|
-
*
|
|
711
|
-
* This is suitable for use in sorting, where ``-1`` implies %%this%%
|
|
712
|
-
* is smaller, ``1`` implies %%this%% is larger and ``0`` implies
|
|
713
|
-
* both are equal.
|
|
714
|
-
*/
|
|
715
|
-
cmp(other) {
|
|
716
|
-
let a = this.value, b = other.value;
|
|
717
|
-
// Coerce a and b to the same magnitude
|
|
718
|
-
const delta = this.decimals - other.decimals;
|
|
719
|
-
if (delta > 0) {
|
|
720
|
-
b *= getTens(delta);
|
|
721
|
-
}
|
|
722
|
-
else if (delta < 0) {
|
|
723
|
-
a *= getTens(-delta);
|
|
724
|
-
}
|
|
725
|
-
// Comnpare
|
|
726
|
-
if (a < b) {
|
|
727
|
-
return -1;
|
|
728
|
-
}
|
|
729
|
-
if (a > b) {
|
|
730
|
-
return 1;
|
|
731
|
-
}
|
|
732
|
-
return 0;
|
|
733
|
-
}
|
|
734
|
-
/**
|
|
735
|
-
* Returns true if %%other%% is equal to %%this%%.
|
|
736
|
-
*/
|
|
737
|
-
eq(other) { return this.cmp(other) === 0; }
|
|
738
|
-
/**
|
|
739
|
-
* Returns true if %%other%% is less than to %%this%%.
|
|
740
|
-
*/
|
|
741
|
-
lt(other) { return this.cmp(other) < 0; }
|
|
742
|
-
/**
|
|
743
|
-
* Returns true if %%other%% is less than or equal to %%this%%.
|
|
744
|
-
*/
|
|
745
|
-
lte(other) { return this.cmp(other) <= 0; }
|
|
746
|
-
/**
|
|
747
|
-
* Returns true if %%other%% is greater than to %%this%%.
|
|
748
|
-
*/
|
|
749
|
-
gt(other) { return this.cmp(other) > 0; }
|
|
750
|
-
/**
|
|
751
|
-
* Returns true if %%other%% is greater than or equal to %%this%%.
|
|
752
|
-
*/
|
|
753
|
-
gte(other) { return this.cmp(other) >= 0; }
|
|
754
|
-
/**
|
|
755
|
-
* Returns a new [[FixedNumber]] which is the largest **integer**
|
|
756
|
-
* that is less than or equal to %%this%%.
|
|
757
|
-
*
|
|
758
|
-
* The decimal component of the result will always be ``0``.
|
|
759
|
-
*/
|
|
760
|
-
floor() {
|
|
761
|
-
let val = this.#val;
|
|
762
|
-
if (this.#val < BN_0) {
|
|
763
|
-
val -= this.#tens - BN_1;
|
|
764
|
-
}
|
|
765
|
-
val = (this.#val / this.#tens) * this.#tens;
|
|
766
|
-
return this.#checkValue(val, "floor");
|
|
767
|
-
}
|
|
768
|
-
/**
|
|
769
|
-
* Returns a new [[FixedNumber]] which is the smallest **integer**
|
|
770
|
-
* that is greater than or equal to %%this%%.
|
|
771
|
-
*
|
|
772
|
-
* The decimal component of the result will always be ``0``.
|
|
773
|
-
*/
|
|
774
|
-
ceiling() {
|
|
775
|
-
let val = this.#val;
|
|
776
|
-
if (this.#val > BN_0) {
|
|
777
|
-
val += this.#tens - BN_1;
|
|
778
|
-
}
|
|
779
|
-
val = (this.#val / this.#tens) * this.#tens;
|
|
780
|
-
return this.#checkValue(val, "ceiling");
|
|
781
|
-
}
|
|
782
|
-
/**
|
|
783
|
-
* Returns a new [[FixedNumber]] with the decimal component
|
|
784
|
-
* rounded up on ties at %%decimals%% places.
|
|
785
|
-
*/
|
|
786
|
-
round(decimals) {
|
|
787
|
-
if (decimals == null) {
|
|
788
|
-
decimals = 0;
|
|
789
|
-
}
|
|
790
|
-
// Not enough precision to not already be rounded
|
|
791
|
-
if (decimals >= this.decimals) {
|
|
792
|
-
return this;
|
|
793
|
-
}
|
|
794
|
-
const delta = this.decimals - decimals;
|
|
795
|
-
const bump = BN_5 * getTens(delta - 1);
|
|
796
|
-
let value = this.value + bump;
|
|
797
|
-
const tens = getTens(delta);
|
|
798
|
-
value = (value / tens) * tens;
|
|
799
|
-
checkValue(value, this.#format, "round");
|
|
800
|
-
return new FixedNumber(_guard, value, this.#format);
|
|
801
|
-
}
|
|
802
|
-
/**
|
|
803
|
-
* Returns true if %%this%% is equal to ``0``.
|
|
804
|
-
*/
|
|
805
|
-
isZero() { return (this.#val === BN_0); }
|
|
806
|
-
/**
|
|
807
|
-
* Returns true if %%this%% is less than ``0``.
|
|
808
|
-
*/
|
|
809
|
-
isNegative() { return (this.#val < BN_0); }
|
|
810
|
-
/**
|
|
811
|
-
* Returns the string representation of %%this%%.
|
|
812
|
-
*/
|
|
813
|
-
toString() { return this._value; }
|
|
814
|
-
/**
|
|
815
|
-
* Returns a float approximation.
|
|
816
|
-
*
|
|
817
|
-
* Due to IEEE 754 precission (or lack thereof), this function
|
|
818
|
-
* can only return an approximation and most values will contain
|
|
819
|
-
* rounding errors.
|
|
820
|
-
*/
|
|
821
|
-
toUnsafeFloat() { return parseFloat(this.toString()); }
|
|
822
|
-
/**
|
|
823
|
-
* Return a new [[FixedNumber]] with the same value but has had
|
|
824
|
-
* its field set to %%format%%.
|
|
825
|
-
*
|
|
826
|
-
* This will throw if the value cannot fit into %%format%%.
|
|
827
|
-
*/
|
|
828
|
-
toFormat(format) {
|
|
829
|
-
return FixedNumber.fromString(this.toString(), format);
|
|
830
|
-
}
|
|
831
|
-
/**
|
|
832
|
-
* Creates a new [[FixedNumber]] for %%value%% divided by
|
|
833
|
-
* %%decimal%% places with %%format%%.
|
|
834
|
-
*
|
|
835
|
-
* This will throw a [[NumericFaultError]] if %%value%% (once adjusted
|
|
836
|
-
* for %%decimals%%) cannot fit in %%format%%, either due to overflow
|
|
837
|
-
* or underflow (precision loss).
|
|
838
|
-
*/
|
|
839
|
-
static fromValue(_value, _decimals, _format) {
|
|
840
|
-
const decimals = (_decimals == null) ? 0 : getNumber(_decimals);
|
|
841
|
-
const format = getFormat(_format);
|
|
842
|
-
let value = getBigInt(_value, "value");
|
|
843
|
-
const delta = decimals - format.decimals;
|
|
844
|
-
if (delta > 0) {
|
|
845
|
-
const tens = getTens(delta);
|
|
846
|
-
assert((value % tens) === BN_0, "value loses precision for format", "NUMERIC_FAULT", {
|
|
847
|
-
operation: "fromValue", fault: "underflow", value: _value
|
|
848
|
-
});
|
|
849
|
-
value /= tens;
|
|
850
|
-
}
|
|
851
|
-
else if (delta < 0) {
|
|
852
|
-
value *= getTens(-delta);
|
|
853
|
-
}
|
|
854
|
-
checkValue(value, format, "fromValue");
|
|
855
|
-
return new FixedNumber(_guard, value, format);
|
|
856
|
-
}
|
|
857
|
-
/**
|
|
858
|
-
* Creates a new [[FixedNumber]] for %%value%% with %%format%%.
|
|
859
|
-
*
|
|
860
|
-
* This will throw a [[NumericFaultError]] if %%value%% cannot fit
|
|
861
|
-
* in %%format%%, either due to overflow or underflow (precision loss).
|
|
862
|
-
*/
|
|
863
|
-
static fromString(_value, _format) {
|
|
864
|
-
const match = _value.match(/^(-?)([0-9]*)\.?([0-9]*)$/);
|
|
865
|
-
assertArgument(match && (match[2].length + match[3].length) > 0, "invalid FixedNumber string value", "value", _value);
|
|
866
|
-
const format = getFormat(_format);
|
|
867
|
-
let whole = (match[2] || "0"), decimal = (match[3] || "");
|
|
868
|
-
// Pad out the decimals
|
|
869
|
-
while (decimal.length < format.decimals) {
|
|
870
|
-
decimal += Zeros;
|
|
871
|
-
}
|
|
872
|
-
// Check precision is safe
|
|
873
|
-
assert(decimal.substring(format.decimals).match(/^0*$/), "too many decimals for format", "NUMERIC_FAULT", {
|
|
874
|
-
operation: "fromString", fault: "underflow", value: _value
|
|
875
|
-
});
|
|
876
|
-
// Remove extra padding
|
|
877
|
-
decimal = decimal.substring(0, format.decimals);
|
|
878
|
-
const value = BigInt(match[1] + whole + decimal);
|
|
879
|
-
checkValue(value, format, "fromString");
|
|
880
|
-
return new FixedNumber(_guard, value, format);
|
|
881
|
-
}
|
|
882
|
-
/**
|
|
883
|
-
* Creates a new [[FixedNumber]] with the big-endian representation
|
|
884
|
-
* %%value%% with %%format%%.
|
|
885
|
-
*
|
|
886
|
-
* This will throw a [[NumericFaultError]] if %%value%% cannot fit
|
|
887
|
-
* in %%format%% due to overflow.
|
|
888
|
-
*/
|
|
889
|
-
static fromBytes(_value, _format) {
|
|
890
|
-
let value = toBigInt(getBytes(_value, "value"));
|
|
891
|
-
const format = getFormat(_format);
|
|
892
|
-
if (format.signed) {
|
|
893
|
-
value = fromTwos(value, format.width);
|
|
894
|
-
}
|
|
895
|
-
checkValue(value, format, "fromBytes");
|
|
896
|
-
return new FixedNumber(_guard, value, format);
|
|
897
|
-
}
|
|
898
|
-
}
|
|
899
|
-
//const f1 = FixedNumber.fromString("12.56", "fixed16x2");
|
|
900
|
-
//const f2 = FixedNumber.fromString("0.3", "fixed16x2");
|
|
901
|
-
//console.log(f1.divSignal(f2));
|
|
902
|
-
//const BUMP = FixedNumber.from("0.5");
|
|
903
|
-
|
|
904
|
-
/**
|
|
905
|
-
* Most interactions with Ethereum requires integer values, which use
|
|
906
|
-
* the smallest magnitude unit.
|
|
907
|
-
*
|
|
908
|
-
* For example, imagine dealing with dollars and cents. Since dollars
|
|
909
|
-
* are divisible, non-integer values are possible, such as ``$10.77``.
|
|
910
|
-
* By using the smallest indivisible unit (i.e. cents), the value can
|
|
911
|
-
* be kept as the integer ``1077``.
|
|
912
|
-
*
|
|
913
|
-
* When receiving decimal input from the user (as a decimal string),
|
|
914
|
-
* the value should be converted to an integer and when showing a user
|
|
915
|
-
* a value, the integer value should be converted to a decimal string.
|
|
916
|
-
*
|
|
917
|
-
* This creates a clear distinction, between values to be used by code
|
|
918
|
-
* (integers) and values used for display logic to users (decimals).
|
|
919
|
-
*
|
|
920
|
-
* The native unit in Ethereum, //ether// is divisible to 18 decimal places,
|
|
921
|
-
* where each individual unit is called a //wei//.
|
|
922
|
-
*
|
|
923
|
-
* @_subsection api/utils:Unit Conversion [about-units]
|
|
924
|
-
*/
|
|
925
|
-
/**
|
|
926
|
-
* Converts %%value%% into a //decimal string//, assuming %%unit%% decimal
|
|
927
|
-
* places. The %%unit%% may be the number of decimal places or the name of
|
|
928
|
-
* a unit (e.g. ``"gwei"`` for 9 decimal places).
|
|
929
|
-
*
|
|
930
|
-
*/
|
|
931
|
-
function formatUnits(value, unit) {
|
|
932
|
-
let decimals = 18;
|
|
933
|
-
return FixedNumber.fromValue(value, decimals, { decimals, width: 512 }).toString();
|
|
934
|
-
}
|
|
935
|
-
|
|
936
19
|
const byteFormats = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
937
20
|
const formatBytes = (bytes, decimals = 2) => {
|
|
938
21
|
if (bytes === 0)
|
|
@@ -944,10 +27,10 @@ const formatBytes = (bytes, decimals = 2) => {
|
|
|
944
27
|
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(decimals))} ${byteFormats[i]}`;
|
|
945
28
|
};
|
|
946
29
|
|
|
947
|
-
var contractFactory$1 = "
|
|
948
|
-
var nativeToken$1 = "
|
|
949
|
-
var nameService$1 = "
|
|
950
|
-
var validators$1 = "
|
|
30
|
+
var contractFactory$1 = "B3OGRUBSARKAMWHZLZZAL5Y4SRUJOE4RIMQX4SELNLMTQVPBGFQXEF5RPPHV";
|
|
31
|
+
var nativeToken$1 = "B3OGRUBSBSWHYGNYT4O57EK7Q5ZNXYFR23CCS4EUQPQ34RU57V6ROQNLYIVN";
|
|
32
|
+
var nameService$1 = "B3OGRUBSB23VEDKVPQM5DYREJVI2XYMSQ44ZN3NQG445AZMASFMOUU4P7HLM";
|
|
33
|
+
var validators$1 = "B3OGRUBSBT6UD4G6V3KP7Z6G2DLMMOV5D5IFIZH2I3KD2CK6VFD3CYY2NCKV";
|
|
951
34
|
var addresses$1 = {
|
|
952
35
|
contractFactory: contractFactory$1,
|
|
953
36
|
nativeToken: nativeToken$1,
|
|
@@ -966,10 +49,10 @@ var addresses = {
|
|
|
966
49
|
validators: validators$2
|
|
967
50
|
};
|
|
968
51
|
|
|
969
|
-
var contractFactory = "237,198,141,3,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,162,51,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,80,117,98,108,105,99,86,111,116,105,110,103,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,118,111,116,101,115,59,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,59,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,61,49,55,50,56,101,53,59,35,118,111,116,101,78,111,110,99,101,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,118,111,116,101,115,61,115,116,97,116,101,46,118,111,116,101,115,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,115,116,97,116,101,46,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,118,111,116,101,78,111,110,99,101,63,63,79,98,106,101,99,116,46,107,101,121,115,40,115,116,97,116,101,46,118,111,116,101,115,63,63,123,125,41,46,108,101,110,103,116,104,41,41,58,40,116,104,105,115,46,35,118,111,116,101,115,61,123,125,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,49,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,48,110,41,125,103,101,116,32,118,111,116,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,118,111,116,101,115,125,125,103,101,116,32,118,111,116,105,110,103,68,117,114,97,116,105,111,110,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,125,103,101,116,32,118,111,116,105,110,103,68,105,115,97,98,108,101,100,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,118,111,116,101,115,58,116,104,105,115,46,35,118,111,116,101,115,44,118,111,116,105,110,103,68,105,115,97,98,108,101,100,58,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,118,111,116,105,110,103,68,117,114,97,116,105,111,110,58,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,118,111,116,101,78,111,110,99,101,58,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,125,125,103,101,116,32,105,110,80,114,111,103,114,101,115,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,118,111,116,101,115,41,46,102,105,108,116,101,114,40,40,91,105,100,44,118,111,116,101,93,41,61,62,33,118,111,116,101,46,102,105,110,105,115,104,101,100,41,46,109,97,112,40,40,91,105,100,44,118,111,116,101,93,41,61,62,40,123,46,46,46,118,111,116,101,44,105,100,58,105,100,125,41,41,125,99,114,101,97,116,101,86,111,116,101,40,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,44,101,110,100,84,105,109,101,44,109,101,116,104,111,100,44,97,114,103,115,61,91,93,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,99,114,101,97,116,101,32,97,32,118,111,116,101,34,41,59,99,111,110,115,116,32,105,100,61,40,43,43,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,41,46,116,111,83,116,114,105,110,103,40,41,59,116,104,105,115,46,35,118,111,116,101,115,91,105,100,93,61,123,116,105,116,108,101,58,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,58,100,101,115,99,114,105,112,116,105,111,110,44,109,101,116,104,111,100,58,109,101,116,104,111,100,44,101,110,100,84,105,109,101,58,101,110,100,84,105,109,101,44,97,114,103,115,58,97,114,103,115,125,125,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,99,97,110,86,111,116,101,63,46,40,41,125,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,98,101,102,111,114,101,86,111,116,101,63,46,40,41,125,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,123,108,101,116,32,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,49,61,61,61,114,101,115,117,108,116,41,44,100,105,115,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,48,61,61,61,114,101,115,117,108,116,41,59,97,103,114,101,101,46,108,101,110,103,116,104,62,100,105,115,97,103,114,101,101,46,108,101,110,103,116,104,38,38,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,111,117,103,104,86,111,116,101,115,38,38,116,104,105,115,91,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,109,101,116,104,111,100,93,40,46,46,46,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,97,114,103,115,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,61,33,48,125,97,115,121,110,99,32,118,111,116,101,40,118,111,116,101,73,100,44,118,111,116,101,41,123,105,102,40,48,33,61,61,40,118,111,116,101,61,78,117,109,98,101,114,40,118,111,116,101,41,41,38,38,46,53,33,61,61,118,111,116,101,38,38,49,33,61,61,118,111,116,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,118,111,116,101,32,118,97,108,117,101,32,36,123,118,111,116,101,125,96,41,59,105,102,40,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,78,111,116,104,105,110,103,32,102,111,117,110,100,32,102,111,114,32,36,123,118,111,116,101,73,100,125,96,41,59,99,111,110,115,116,32,101,110,100,101,100,61,68,97,116,101,46,110,111,119,40,41,62,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,100,84,105,109,101,59,105,102,40,101,110,100,101,100,38,38,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,44,101,110,100,101,100,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,111,116,105,110,103,32,97,108,114,101,97,100,121,32,101,110,100,101,100,34,41,59,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,118,111,116,101,34,41,59,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,91,109,115,103,46,115,101,110,100,101,114,93,61,118,111,116,101,125,35,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,48,125,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,100,105,115,97,98,108,101,32,118,111,116,105,110,103,34,44,34,87,97,114,110,105,110,103,32,116,104,105,115,32,100,105,115,97,98,108,101,115,32,97,108,108,32,118,111,116,105,110,103,32,102,101,97,116,117,114,101,115,32,102,111,114,101,118,101,114,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,100,105,115,97,98,108,101,86,111,116,105,110,103,34,44,91,93,41,125,95,115,121,110,99,40,41,123,102,111,114,40,99,111,110,115,116,32,118,111,116,101,32,111,102,32,116,104,105,115,46,105,110,80,114,111,103,114,101,115,115,41,118,111,116,101,46,101,110,100,84,105,109,101,60,68,97,116,101,46,110,111,119,40,41,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,46,105,100,41,125,125,99,108,97,115,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,32,101,120,116,101,110,100,115,32,80,117,98,108,105,99,86,111,116,105,110,103,123,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,82,101,99,101,105,118,101,114,59,35,118,111,116,101,84,121,112,101,61,34,116,114,97,110,115,102,101,114,34,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,98,117,114,110,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,115,116,97,116,101,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,115,116,97,116,101,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,115,116,97,116,101,46,118,111,116,101,84,121,112,101,41,58,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,98,117,114,110,115,38,38,40,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,34,98,117,114,110,34,41,41,125,103,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,82,101,99,101,105,118,101,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,107,101,110,82,101,99,101,105,118,101,114,58,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,118,111,116,101,84,121,112,101,58,116,104,105,115,46,35,118,111,116,101,84,121,112,101,125,125,97,115,121,110,99,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,62,61,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,97,115,121,110,99,32,95,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,125,97,115,121,110,99,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,34,98,117,114,110,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,63,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,58,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,101,102,111,114,101,86,111,116,101,40,41,123,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,125,97,115,121,110,99,32,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,117,114,110,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,97,100,100,114,101,115,115,41,123,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,97,100,100,114,101,115,115,125,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,97,109,111,117,110,116,125,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,116,121,112,101,125,35,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,34,116,114,97,110,115,102,101,114,34,44,91,114,101,99,101,105,118,101,114,44,97,109,111,117,110,116,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,38,38,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,62,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,34,44,91,116,121,112,101,93,41,125,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,34,44,96,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,32,116,111,32,36,123,114,101,99,101,105,118,101,114,125,96,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,103,101,116,84,111,107,101,110,115,79,117,116,34,44,91,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,93,41,125,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,35,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,48,110,33,61,61,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,38,38,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,32,116,111,32,97,32,110,101,119,32,97,100,100,114,101,115,115,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,125,99,108,97,115,115,32,70,97,99,116,111,114,121,32,101,120,116,101,110,100,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,34,59,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,66,105,103,73,110,116,40,48,41,59,35,99,111,110,116,114,97,99,116,115,61,91,93,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,115,116,97,116,101,41,123,115,117,112,101,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,33,48,44,115,116,97,116,101,41,44,115,116,97,116,101,38,38,40,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,99,111,110,116,114,97,99,116,115,44,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,116,111,116,97,108,67,111,110,116,114,97,99,116,115,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,116,97,108,67,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,44,99,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,125,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,99,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,91,46,46,46,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,93,125,103,101,116,32,116,111,116,97,108,67,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,125,105,115,82,101,103,105,115,116,101,114,101,100,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,97,100,100,114,101,115,115,44,34,99,114,101,97,116,111,114,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,125,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,125,97,115,121,110,99,32,114,101,103,105,115,116,101,114,67,111,110,116,114,97,99,116,40,97,100,100,114,101,115,115,41,123,105,102,40,33,97,119,97,105,116,32,116,104,105,115,46,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,89,111,117,32,100,111,110,39,116,32,111,119,110,32,116,104,97,116,32,99,111,110,116,114,97,99,116,34,41,59,105,102,40,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,108,114,101,97,100,121,32,114,101,103,105,115,116,101,114,101,100,34,41,59,97,119,97,105,116,32,116,104,105,115,46,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,44,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,43,61,49,110,44,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,125,10,10,114,101,116,117,114,110,32,70,97,99,116,111,114,121,89,91,34,66,51,79,71,82,85,66,83,65,53,86,55,52,72,73,82,82,80,54,89,80,77,90,89,68,90,55,89,77,51,83,82,51,77,81,88,54,51,88,83,89,69,90,73,90,55,84,87,72,66,80,68,87,82,87,86,65,50,88,65,34,44,34,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,34,93";
|
|
970
|
-
var nativeToken = "237,198,141,3,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,166,65,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,82,111,108,101,115,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,114,111,108,101,115,61,123,79,87,78,69,82,58,91,93,44,77,73,78,84,58,91,93,44,66,85,82,78,58,91,93,125,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,105,102,40,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,46,114,111,108,101,115,41,123,105,102,40,33,40,115,116,97,116,101,46,114,111,108,101,115,32,105,110,115,116,97,110,99,101,111,102,32,79,98,106,101,99,116,41,41,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,101,120,112,101,99,116,101,100,32,114,111,108,101,115,32,116,111,32,98,101,32,97,110,32,111,98,106,101,99,116,34,41,59,116,104,105,115,46,35,114,111,108,101,115,61,123,46,46,46,115,116,97,116,101,46,114,111,108,101,115,125,125,101,108,115,101,32,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,111,108,101,115,58,116,104,105,115,46,114,111,108,101,115,125,125,103,101,116,32,114,111,108,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,114,101,116,117,114,110,33,33,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,38,38,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,103,114,97,110,116,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,114,101,118,111,107,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,105,102,40,34,79,87,78,69,82,34,61,61,61,114,111,108,101,38,38,49,61,61,61,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,116,108,101,97,115,116,32,111,110,101,32,111,119,110,101,114,32,105,115,32,110,101,101,100,101,100,33,34,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,115,112,108,105,99,101,40,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,100,101,120,79,102,40,97,100,100,114,101,115,115,41,41,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,125,99,108,97,115,115,32,84,111,107,101,110,32,101,120,116,101,110,100,115,32,82,111,108,101,115,123,35,110,97,109,101,59,35,115,121,109,98,111,108,59,35,104,111,108,100,101,114,115,61,48,110,59,35,98,97,108,97,110,99,101,115,61,123,125,59,35,97,112,112,114,111,118,97,108,115,61,123,125,59,35,100,101,99,105,109,97,108,115,61,49,56,59,35,116,111,116,97,108,83,117,112,112,108,121,61,48,110,59,99,111,110,115,116,114,117,99,116,111,114,40,110,97,109,101,44,115,121,109,98,111,108,44,100,101,99,105,109,97,108,115,61,49,56,44,115,116,97,116,101,41,123,105,102,40,33,110,97,109,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,97,109,101,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,33,115,121,109,98,111,108,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,115,121,109,98,111,108,32,117,110,100,101,102,105,110,101,100,34,41,59,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,98,97,108,97,110,99,101,115,61,40,98,97,108,97,110,99,101,115,61,62,123,99,111,110,115,116,32,95,98,97,108,97,110,99,101,115,61,123,125,59,102,111,114,40,99,111,110,115,116,32,97,100,100,114,101,115,115,32,105,110,32,98,97,108,97,110,99,101,115,41,95,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,66,105,103,73,110,116,40,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,41,59,114,101,116,117,114,110,32,95,98,97,108,97,110,99,101,115,125,41,40,115,116,97,116,101,46,98,97,108,97,110,99,101,115,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,61,40,97,112,112,114,111,118,97,108,115,61,62,123,99,111,110,115,116,32,95,97,112,112,114,111,118,97,108,115,61,123,125,59,102,111,114,40,99,111,110,115,116,32,111,119,110,101,114,32,105,110,32,97,112,112,114,111,118,97,108,115,41,123,95,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,61,123,125,59,102,111,114,40,99,111,110,115,116,32,111,112,101,114,97,116,111,114,32,105,110,32,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,41,95,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,66,105,103,73,110,116,40,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,41,125,114,101,116,117,114,110,32,95,97,112,112,114,111,118,97,108,115,125,41,40,115,116,97,116,101,46,97,112,112,114,111,118,97,108,115,41,44,116,104,105,115,46,35,104,111,108,100,101,114,115,61,66,105,103,73,110,116,40,115,116,97,116,101,46,104,111,108,100,101,114,115,41,44,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,116,97,108,83,117,112,112,108,121,41,41,58,40,116,104,105,115,46,35,110,97,109,101,61,110,97,109,101,44,116,104,105,115,46,35,115,121,109,98,111,108,61,115,121,109,98,111,108,44,116,104,105,115,46,35,100,101,99,105,109,97,108,115,61,100,101,99,105,109,97,108,115,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,104,111,108,100,101,114,115,58,116,104,105,115,46,104,111,108,100,101,114,115,44,98,97,108,97,110,99,101,115,58,116,104,105,115,46,98,97,108,97,110,99,101,115,44,97,112,112,114,111,118,97,108,115,58,123,46,46,46,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,125,44,116,111,116,97,108,83,117,112,112,108,121,58,116,104,105,115,46,116,111,116,97,108,83,117,112,112,108,121,125,125,103,101,116,32,116,111,116,97,108,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,115,121,109,98,111,108,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,115,121,109,98,111,108,125,103,101,116,32,104,111,108,100,101,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,104,111,108,100,101,114,115,125,103,101,116,32,98,97,108,97,110,99,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,98,97,108,97,110,99,101,115,125,125,103,101,116,32,97,112,112,114,111,118,97,108,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,102,114,111,109,69,110,116,114,105,101,115,40,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,41,46,109,97,112,40,40,91,111,119,110,101,114,44,97,112,112,114,111,118,97,108,115,93,41,61,62,91,111,119,110,101,114,44,123,46,46,46,97,112,112,114,111,118,97,108,115,125,93,41,41,125,103,101,116,32,100,101,99,105,109,97,108,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,100,101,99,105,109,97,108,115,125,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,77,73,78,84,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,105,102,40,33,116,111,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,43,97,109,111,117,110,116,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,66,85,82,78,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,45,97,109,111,117,110,116,44,116,104,105,115,46,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,102,114,111,109,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,102,114,111,109,44,97,109,111,117,110,116,41,125,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,102,114,111,109,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,33,116,111,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,97,109,111,117,110,116,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,33,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,124,124,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,34,41,125,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,123,48,110,61,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,63,116,104,105,115,46,35,104,111,108,100,101,114,115,45,61,49,110,58,48,110,33,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,38,38,48,110,61,61,61,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,38,38,40,116,104,105,115,46,35,104,111,108,100,101,114,115,43,61,49,110,41,125,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,124,124,40,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,48,110,41,59,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,43,97,109,111,117,110,116,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,45,97,109,111,117,110,116,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,109,115,103,46,115,101,110,100,101,114,93,63,63,48,110,125,98,97,108,97,110,99,101,79,102,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,63,63,48,110,125,115,101,116,65,112,112,114,111,118,97,108,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,114,101,116,117,114,110,32,116,104,105,115,46,97,112,112,114,111,118,101,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,125,97,112,112,114,111,118,101,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,111,119,110,101,114,61,109,115,103,46,115,101,110,100,101,114,59,105,102,40,33,111,112,101,114,97,116,111,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,112,101,114,97,116,111,114,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,112,112,114,111,118,97,108,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,124,124,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,61,123,125,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,97,109,111,117,110,116,125,97,112,112,114,111,118,101,100,40,111,119,110,101,114,44,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,114,101,116,117,114,110,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,63,46,91,111,112,101,114,97,116,111,114,93,63,63,48,110,41,61,61,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,125,97,108,108,111,119,97,110,99,101,40,111,119,110,101,114,44,111,112,101,114,97,116,111,114,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,63,46,91,111,112,101,114,97,116,111,114,93,63,63,48,110,125,35,116,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,102,114,111,109,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,116,114,97,110,115,102,101,114,40,116,111,44,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,114,97,110,115,102,101,114,40,109,115,103,46,115,101,110,100,101,114,44,116,111,44,97,109,111,117,110,116,41,125,116,114,97,110,115,102,101,114,70,114,111,109,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,59,99,111,110,115,116,32,111,112,101,114,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,97,108,108,111,119,97,110,99,101,61,116,104,105,115,46,97,108,108,111,119,97,110,99,101,40,102,114,111,109,44,111,112,101,114,97,116,111,114,41,59,105,102,40,97,108,108,111,119,97,110,99,101,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,97,108,108,111,119,97,110,99,101,34,41,59,116,104,105,115,46,35,116,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,102,114,111,109,93,91,111,112,101,114,97,116,111,114,93,61,97,108,108,111,119,97,110,99,101,45,97,109,111,117,110,116,125,125,99,111,110,115,116,32,77,79,78,69,84,65,82,89,95,80,79,76,73,67,89,95,65,85,84,72,79,82,73,84,89,61,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,59,99,108,97,115,115,32,76,101,111,102,99,111,105,110,32,101,120,116,101,110,100,115,32,84,111,107,101,110,123,35,116,97,114,103,101,116,83,117,112,112,108,121,59,35,105,110,105,116,105,97,108,83,117,112,112,108,121,59,99,111,110,115,116,114,117,99,116,111,114,40,116,97,114,103,101,116,83,117,112,112,108,121,44,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,44,97,108,108,111,99,97,116,105,111,110,115,61,91,93,44,114,101,115,116,111,114,101,100,83,116,97,116,101,41,123,99,111,110,115,116,32,108,101,103,97,99,121,83,116,97,116,101,61,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,38,38,34,111,98,106,101,99,116,34,61,61,116,121,112,101,111,102,32,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,38,38,33,65,114,114,97,121,46,105,115,65,114,114,97,121,40,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,41,63,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,58,118,111,105,100,32,48,44,115,116,97,116,101,61,114,101,115,116,111,114,101,100,83,116,97,116,101,124,124,108,101,103,97,99,121,83,116,97,116,101,44,105,110,105,116,105,97,108,83,117,112,112,108,121,61,115,116,97,116,101,63,66,105,103,73,110,116,40,115,116,97,116,101,46,105,110,105,116,105,97,108,83,117,112,112,108,121,63,63,115,116,97,116,101,46,116,111,116,97,108,83,117,112,112,108,121,41,58,66,105,103,73,110,116,40,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,41,59,105,102,40,115,117,112,101,114,40,34,76,101,111,102,99,111,105,110,34,44,34,76,70,67,34,44,49,56,44,115,116,97,116,101,124,124,40,40,105,110,105,116,105,97,108,83,117,112,112,108,121,44,97,108,108,111,99,97,116,105,111,110,115,41,61,62,123,105,102,40,40,105,110,105,116,105,97,108,83,117,112,112,108,121,61,66,105,103,73,110,116,40,105,110,105,116,105,97,108,83,117,112,112,108,121,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,105,116,105,97,108,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,33,65,114,114,97,121,46,105,115,65,114,114,97,121,40,97,108,108,111,99,97,116,105,111,110,115,41,124,124,48,61,61,61,97,108,108,111,99,97,116,105,111,110,115,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,115,32,97,114,101,32,114,101,113,117,105,114,101,100,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,115,61,123,125,59,108,101,116,32,97,108,108,111,99,97,116,101,100,61,48,110,59,102,111,114,40,99,111,110,115,116,32,97,108,108,111,99,97,116,105,111,110,32,111,102,91,46,46,46,97,108,108,111,99,97,116,105,111,110,115,93,46,115,111,114,116,40,40,108,101,102,116,44,114,105,103,104,116,41,61,62,108,101,102,116,46,97,100,100,114,101,115,115,46,108,111,99,97,108,101,67,111,109,112,97,114,101,40,114,105,103,104,116,46,97,100,100,114,101,115,115,41,41,41,123,105,102,40,33,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,124,124,118,111,105,100,32,48,33,61,61,98,97,108,97,110,99,101,115,91,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,118,97,108,105,100,32,111,114,32,100,117,112,108,105,99,97,116,101,32,103,101,110,101,115,105,115,32,97,100,100,114,101,115,115,34,41,59,99,111,110,115,116,32,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,108,108,111,99,97,116,105,111,110,46,97,109,111,117,110,116,41,59,105,102,40,97,109,111,117,110,116,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,98,97,108,97,110,99,101,115,91,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,93,61,97,109,111,117,110,116,44,97,108,108,111,99,97,116,101,100,43,61,97,109,111,117,110,116,125,105,102,40,97,108,108,111,99,97,116,101,100,33,61,61,105,110,105,116,105,97,108,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,115,32,109,117,115,116,32,101,113,117,97,108,32,105,110,105,116,105,97,108,32,115,117,112,112,108,121,58,32,101,120,112,101,99,116,101,100,32,36,123,105,110,105,116,105,97,108,83,117,112,112,108,121,125,44,32,103,111,116,32,36,123,97,108,108,111,99,97,116,101,100,125,96,41,59,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,109,115,103,46,115,101,110,100,101,114,44,99,114,101,97,116,101,100,65,116,58,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,44,114,111,108,101,115,58,123,79,87,78,69,82,58,91,109,115,103,46,115,101,110,100,101,114,93,44,77,73,78,84,58,91,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,93,44,66,85,82,78,58,91,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,93,125,44,104,111,108,100,101,114,115,58,66,105,103,73,110,116,40,79,98,106,101,99,116,46,107,101,121,115,40,98,97,108,97,110,99,101,115,41,46,108,101,110,103,116,104,41,44,98,97,108,97,110,99,101,115,58,98,97,108,97,110,99,101,115,44,97,112,112,114,111,118,97,108,115,58,123,125,44,116,111,116,97,108,83,117,112,112,108,121,58,105,110,105,116,105,97,108,83,117,112,112,108,121,125,125,41,40,105,110,105,116,105,97,108,83,117,112,112,108,121,44,97,108,108,111,99,97,116,105,111,110,115,41,41,44,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,61,115,116,97,116,101,63,66,105,103,73,110,116,40,115,116,97,116,101,46,116,97,114,103,101,116,83,117,112,112,108,121,41,58,66,105,103,73,110,116,40,116,97,114,103,101,116,83,117,112,112,108,121,41,44,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,61,105,110,105,116,105,97,108,83,117,112,112,108,121,44,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,116,97,114,103,101,116,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,60,61,48,110,124,124,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,62,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,105,116,105,97,108,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,32,97,110,100,32,110,111,116,32,101,120,99,101,101,100,32,116,97,114,103,101,116,32,115,117,112,112,108,121,34,41,125,103,101,116,32,116,97,114,103,101,116,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,125,103,101,116,32,105,110,105,116,105,97,108,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,34,76,101,111,102,99,111,105,110,34,125,103,101,116,32,115,121,109,98,111,108,40,41,123,114,101,116,117,114,110,34,76,70,67,34,125,103,101,116,32,100,101,99,105,109,97,108,115,40,41,123,114,101,116,117,114,110,32,49,56,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,105,110,105,116,105,97,108,83,117,112,112,108,121,58,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,44,116,97,114,103,101,116,83,117,112,112,108,121,58,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,125,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,34,77,73,78,84,34,61,61,61,114,111,108,101,124,124,34,66,85,82,78,34,61,61,61,114,111,108,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,112,114,111,116,111,99,111,108,32,109,111,110,101,116,97,114,121,32,114,111,108,101,115,32,97,114,101,32,105,109,109,117,116,97,98,108,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,34,77,73,78,84,34,61,61,61,114,111,108,101,124,124,34,66,85,82,78,34,61,61,61,114,111,108,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,112,114,111,116,111,99,111,108,32,109,111,110,101,116,97,114,121,32,114,111,108,101,115,32,97,114,101,32,105,109,109,117,116,97,98,108,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,123,105,102,40,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,33,61,61,109,115,103,46,115,101,110,100,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,110,108,121,32,116,104,101,32,109,111,110,101,116,97,114,121,32,112,114,111,116,111,99,111,108,32,109,97,121,32,109,105,110,116,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,109,105,110,116,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,116,111,116,97,108,83,117,112,112,108,121,43,97,109,111,117,110,116,62,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,109,105,110,116,32,101,120,99,101,101,100,115,32,116,97,114,103,101,116,32,115,117,112,112,108,121,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,125,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,123,105,102,40,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,33,61,61,109,115,103,46,115,101,110,100,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,110,108,121,32,116,104,101,32,109,111,110,101,116,97,114,121,32,112,114,111,116,111,99,111,108,32,109,97,121,32,98,117,114,110,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,98,117,114,110,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,98,97,108,97,110,99,101,79,102,40,102,114,111,109,41,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,125,125,10,10,114,101,116,117,114,110,32,76,101,111,102,99,111,105,110,169,1,91,34,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,34,44,34,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,34,44,91,123,34,97,100,100,114,101,115,115,34,58,34,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,34,44,34,97,109,111,117,110,116,34,58,34,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,34,125,93,93";
|
|
971
|
-
var nameService = "237,198,141,3,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,173,52,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,80,117,98,108,105,99,86,111,116,105,110,103,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,118,111,116,101,115,59,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,59,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,61,49,55,50,56,101,53,59,35,118,111,116,101,78,111,110,99,101,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,118,111,116,101,115,61,115,116,97,116,101,46,118,111,116,101,115,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,115,116,97,116,101,46,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,118,111,116,101,78,111,110,99,101,63,63,79,98,106,101,99,116,46,107,101,121,115,40,115,116,97,116,101,46,118,111,116,101,115,63,63,123,125,41,46,108,101,110,103,116,104,41,41,58,40,116,104,105,115,46,35,118,111,116,101,115,61,123,125,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,49,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,48,110,41,125,103,101,116,32,118,111,116,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,118,111,116,101,115,125,125,103,101,116,32,118,111,116,105,110,103,68,117,114,97,116,105,111,110,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,125,103,101,116,32,118,111,116,105,110,103,68,105,115,97,98,108,101,100,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,118,111,116,101,115,58,116,104,105,115,46,35,118,111,116,101,115,44,118,111,116,105,110,103,68,105,115,97,98,108,101,100,58,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,118,111,116,105,110,103,68,117,114,97,116,105,111,110,58,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,118,111,116,101,78,111,110,99,101,58,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,125,125,103,101,116,32,105,110,80,114,111,103,114,101,115,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,118,111,116,101,115,41,46,102,105,108,116,101,114,40,40,91,105,100,44,118,111,116,101,93,41,61,62,33,118,111,116,101,46,102,105,110,105,115,104,101,100,41,46,109,97,112,40,40,91,105,100,44,118,111,116,101,93,41,61,62,40,123,46,46,46,118,111,116,101,44,105,100,58,105,100,125,41,41,125,99,114,101,97,116,101,86,111,116,101,40,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,44,101,110,100,84,105,109,101,44,109,101,116,104,111,100,44,97,114,103,115,61,91,93,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,99,114,101,97,116,101,32,97,32,118,111,116,101,34,41,59,99,111,110,115,116,32,105,100,61,40,43,43,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,41,46,116,111,83,116,114,105,110,103,40,41,59,116,104,105,115,46,35,118,111,116,101,115,91,105,100,93,61,123,116,105,116,108,101,58,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,58,100,101,115,99,114,105,112,116,105,111,110,44,109,101,116,104,111,100,58,109,101,116,104,111,100,44,101,110,100,84,105,109,101,58,101,110,100,84,105,109,101,44,97,114,103,115,58,97,114,103,115,125,125,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,99,97,110,86,111,116,101,63,46,40,41,125,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,98,101,102,111,114,101,86,111,116,101,63,46,40,41,125,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,123,108,101,116,32,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,49,61,61,61,114,101,115,117,108,116,41,44,100,105,115,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,48,61,61,61,114,101,115,117,108,116,41,59,97,103,114,101,101,46,108,101,110,103,116,104,62,100,105,115,97,103,114,101,101,46,108,101,110,103,116,104,38,38,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,111,117,103,104,86,111,116,101,115,38,38,116,104,105,115,91,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,109,101,116,104,111,100,93,40,46,46,46,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,97,114,103,115,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,61,33,48,125,97,115,121,110,99,32,118,111,116,101,40,118,111,116,101,73,100,44,118,111,116,101,41,123,105,102,40,48,33,61,61,40,118,111,116,101,61,78,117,109,98,101,114,40,118,111,116,101,41,41,38,38,46,53,33,61,61,118,111,116,101,38,38,49,33,61,61,118,111,116,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,118,111,116,101,32,118,97,108,117,101,32,36,123,118,111,116,101,125,96,41,59,105,102,40,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,78,111,116,104,105,110,103,32,102,111,117,110,100,32,102,111,114,32,36,123,118,111,116,101,73,100,125,96,41,59,99,111,110,115,116,32,101,110,100,101,100,61,68,97,116,101,46,110,111,119,40,41,62,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,100,84,105,109,101,59,105,102,40,101,110,100,101,100,38,38,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,44,101,110,100,101,100,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,111,116,105,110,103,32,97,108,114,101,97,100,121,32,101,110,100,101,100,34,41,59,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,118,111,116,101,34,41,59,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,91,109,115,103,46,115,101,110,100,101,114,93,61,118,111,116,101,125,35,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,48,125,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,100,105,115,97,98,108,101,32,118,111,116,105,110,103,34,44,34,87,97,114,110,105,110,103,32,116,104,105,115,32,100,105,115,97,98,108,101,115,32,97,108,108,32,118,111,116,105,110,103,32,102,101,97,116,117,114,101,115,32,102,111,114,101,118,101,114,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,100,105,115,97,98,108,101,86,111,116,105,110,103,34,44,91,93,41,125,95,115,121,110,99,40,41,123,102,111,114,40,99,111,110,115,116,32,118,111,116,101,32,111,102,32,116,104,105,115,46,105,110,80,114,111,103,114,101,115,115,41,118,111,116,101,46,101,110,100,84,105,109,101,60,68,97,116,101,46,110,111,119,40,41,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,46,105,100,41,125,125,99,108,97,115,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,32,101,120,116,101,110,100,115,32,80,117,98,108,105,99,86,111,116,105,110,103,123,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,82,101,99,101,105,118,101,114,59,35,118,111,116,101,84,121,112,101,61,34,116,114,97,110,115,102,101,114,34,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,98,117,114,110,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,115,116,97,116,101,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,115,116,97,116,101,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,115,116,97,116,101,46,118,111,116,101,84,121,112,101,41,58,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,98,117,114,110,115,38,38,40,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,34,98,117,114,110,34,41,41,125,103,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,82,101,99,101,105,118,101,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,107,101,110,82,101,99,101,105,118,101,114,58,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,118,111,116,101,84,121,112,101,58,116,104,105,115,46,35,118,111,116,101,84,121,112,101,125,125,97,115,121,110,99,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,62,61,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,97,115,121,110,99,32,95,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,125,97,115,121,110,99,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,34,98,117,114,110,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,63,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,58,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,101,102,111,114,101,86,111,116,101,40,41,123,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,125,97,115,121,110,99,32,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,117,114,110,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,97,100,100,114,101,115,115,41,123,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,97,100,100,114,101,115,115,125,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,97,109,111,117,110,116,125,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,116,121,112,101,125,35,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,34,116,114,97,110,115,102,101,114,34,44,91,114,101,99,101,105,118,101,114,44,97,109,111,117,110,116,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,38,38,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,62,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,34,44,91,116,121,112,101,93,41,125,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,34,44,96,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,32,116,111,32,36,123,114,101,99,101,105,118,101,114,125,96,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,103,101,116,84,111,107,101,110,115,79,117,116,34,44,91,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,93,41,125,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,35,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,48,110,33,61,61,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,38,38,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,32,116,111,32,97,32,110,101,119,32,97,100,100,114,101,115,115,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,125,99,108,97,115,115,32,78,97,109,101,83,101,114,118,105,99,101,32,101,120,116,101,110,100,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,78,97,109,101,83,101,114,118,105,99,101,34,59,35,114,101,103,105,115,116,114,121,61,123,125,59,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,114,101,103,105,115,116,114,121,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,101,103,105,115,116,114,121,125,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,101,103,105,115,116,114,121,58,116,104,105,115,46,35,114,101,103,105,115,116,114,121,125,125,99,111,110,115,116,114,117,99,116,111,114,40,102,97,99,116,111,114,121,65,100,100,114,101,115,115,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,115,116,97,116,101,41,123,115,117,112,101,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,33,48,44,115,116,97,116,101,41,44,115,116,97,116,101,63,116,104,105,115,46,35,114,101,103,105,115,116,114,121,61,115,116,97,116,101,46,114,101,103,105,115,116,114,121,58,40,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,109,115,103,46,99,111,110,116,114,97,99,116,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,84,111,107,101,110,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,86,97,108,105,100,97,116,111,114,115,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,125,41,125,97,115,121,110,99,32,112,117,114,99,104,97,115,101,78,97,109,101,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,97,109,101,32,97,108,114,101,97,100,121,32,114,101,103,105,115,116,101,114,101,100,34,41,59,97,119,97,105,116,32,116,104,105,115,46,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,97,100,100,114,101,115,115,125,125,108,111,111,107,117,112,40,110,97,109,101,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,125,116,114,97,110,115,102,101,114,79,119,110,101,114,115,104,105,112,40,110,97,109,101,44,116,111,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,61,116,111,125,99,104,97,110,103,101,65,100,100,114,101,115,115,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,97,100,100,114,101,115,115,61,97,100,100,114,101,115,115,125,125,10,10,114,101,116,117,114,110,32,78,97,109,101,83,101,114,118,105,99,101,215,1,91,34,66,51,79,71,82,85,66,83,66,71,83,65,83,70,88,87,68,90,85,73,54,65,89,73,84,89,55,54,80,89,81,90,83,52,79,53,85,68,87,86,76,83,87,53,54,88,53,67,83,87,84,81,71,84,71,81,72,85,71,85,34,44,34,66,51,79,71,82,85,66,83,65,53,86,55,52,72,73,82,82,80,54,89,80,77,90,89,68,90,55,89,77,51,83,82,51,77,81,88,54,51,88,83,89,69,90,73,90,55,84,87,72,66,80,68,87,82,87,86,65,50,88,65,34,44,34,66,51,79,71,82,85,66,83,66,88,76,67,89,82,84,88,71,53,83,82,76,54,88,78,73,78,69,74,78,65,73,55,67,76,74,66,75,83,82,67,88,89,50,52,71,77,70,85,53,90,89,55,84,88,72,65,71,74,71,84,34,44,34,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,34,93";
|
|
972
|
-
var validators = "237,198,141,3,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,206,33,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,82,111,108,101,115,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,114,111,108,101,115,61,123,79,87,78,69,82,58,91,93,44,77,73,78,84,58,91,93,44,66,85,82,78,58,91,93,125,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,105,102,40,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,46,114,111,108,101,115,41,123,105,102,40,33,40,115,116,97,116,101,46,114,111,108,101,115,32,105,110,115,116,97,110,99,101,111,102,32,79,98,106,101,99,116,41,41,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,101,120,112,101,99,116,101,100,32,114,111,108,101,115,32,116,111,32,98,101,32,97,110,32,111,98,106,101,99,116,34,41,59,116,104,105,115,46,35,114,111,108,101,115,61,123,46,46,46,115,116,97,116,101,46,114,111,108,101,115,125,125,101,108,115,101,32,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,111,108,101,115,58,116,104,105,115,46,114,111,108,101,115,125,125,103,101,116,32,114,111,108,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,114,101,116,117,114,110,33,33,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,38,38,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,103,114,97,110,116,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,114,101,118,111,107,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,105,102,40,34,79,87,78,69,82,34,61,61,61,114,111,108,101,38,38,49,61,61,61,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,116,108,101,97,115,116,32,111,110,101,32,111,119,110,101,114,32,105,115,32,110,101,101,100,101,100,33,34,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,115,112,108,105,99,101,40,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,100,101,120,79,102,40,97,100,100,114,101,115,115,41,41,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,125,99,108,97,115,115,32,86,97,108,105,100,97,116,111,114,115,32,101,120,116,101,110,100,115,32,82,111,108,101,115,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,86,97,108,105,100,97,116,111,114,115,34,59,35,118,97,108,105,100,97,116,111,114,115,61,91,93,59,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,59,35,99,117,114,114,101,110,99,121,59,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,66,105,103,73,110,116,40,53,101,52,41,59,35,98,97,108,97,110,99,101,115,61,123,125,59,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,61,123,125,59,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,98,97,108,97,110,99,101,115,58,116,104,105,115,46,35,98,97,108,97,110,99,101,115,44,109,105,110,105,109,117,109,66,97,108,97,110,99,101,58,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,99,117,114,114,101,110,99,121,58,116,104,105,115,46,35,99,117,114,114,101,110,99,121,44,118,97,108,105,100,97,116,111,114,115,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,44,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,58,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,44,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,125,125,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,65,100,100,114,101,115,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,41,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,115,116,97,116,101,46,99,117,114,114,101,110,99,121,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,61,115,116,97,116,101,46,118,97,108,105,100,97,116,111,114,115,44,116,104,105,115,46,35,98,97,108,97,110,99,101,115,61,115,116,97,116,101,46,98,97,108,97,110,99,101,115,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,115,116,97,116,101,46,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,61,115,116,97,116,101,46,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,124,124,123,125,41,58,40,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,116,111,107,101,110,65,100,100,114,101,115,115,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,112,117,115,104,40,109,115,103,46,115,101,110,100,101,114,41,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,48,93,61,91,109,115,103,46,115,101,110,100,101,114,93,41,125,103,101,116,32,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,99,117,114,114,101,110,99,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,117,114,114,101,110,99,121,125,103,101,116,32,118,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,103,101,116,32,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,125,103,101,116,32,109,105,110,105,109,117,109,66,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,99,104,97,110,103,101,67,117,114,114,101,110,99,121,40,99,117,114,114,101,110,99,121,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,110,32,111,119,110,101,114,34,41,59,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,99,117,114,114,101,110,99,121,125,104,97,115,40,118,97,108,105,100,97,116,111,114,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,105,110,99,108,117,100,101,115,40,118,97,108,105,100,97,116,111,114,41,125,35,105,115,65,108,108,111,119,101,100,40,97,100,100,114,101,115,115,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,97,100,100,114,101,115,115,38,38,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,115,101,110,100,101,114,32,105,115,32,110,111,116,32,116,104,101,32,118,97,108,105,100,97,116,111,114,32,111,114,32,111,119,110,101,114,34,41,59,114,101,116,117,114,110,33,48,125,118,97,108,105,100,97,116,111,114,115,66,121,72,101,105,103,104,116,40,104,101,105,103,104,116,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,63,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,114,101,99,111,114,100,86,97,108,105,100,97,116,111,114,83,110,97,112,115,104,111,116,40,104,101,105,103,104,116,41,123,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,61,91,46,46,46,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,93,125,97,115,121,110,99,32,97,100,100,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,116,104,105,115,46,35,105,115,65,108,108,111,119,101,100,40,118,97,108,105,100,97,116,111,114,41,44,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,97,108,105,100,97,116,111,114,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,61,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,98,97,108,97,110,99,101,79,102,34,44,91,118,97,108,105,100,97,116,111,114,93,41,59,105,102,40,116,104,105,115,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,62,98,97,108,97,110,99,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,98,97,108,97,110,99,101,32,116,111,32,108,111,119,33,32,103,111,116,58,32,36,123,98,97,108,97,110,99,101,125,32,110,101,101,100,58,32,36,123,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,96,41,59,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,118,97,108,105,100,97,116,111,114,44,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,93,41,44,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,118,97,108,105,100,97,116,111,114,93,61,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,112,117,115,104,40,118,97,108,105,100,97,116,111,114,41,125,97,115,121,110,99,32,114,101,109,111,118,101,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,116,104,105,115,46,35,105,115,65,108,108,111,119,101,100,40,118,97,108,105,100,97,116,111,114,41,44,33,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,97,108,105,100,97,116,111,114,32,110,111,116,32,102,111,117,110,100,34,41,59,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,116,114,97,110,115,102,101,114,34,44,91,118,97,108,105,100,97,116,111,114,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,93,41,44,100,101,108,101,116,101,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,118,97,108,105,100,97,116,111,114,93,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,115,112,108,105,99,101,40,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,105,110,100,101,120,79,102,40,118,97,108,105,100,97,116,111,114,41,44,49,41,125,115,104,117,102,102,108,101,86,97,108,105,100,97,116,111,114,40,41,123,99,111,110,115,116,32,118,97,108,105,100,97,116,111,114,115,61,91,46,46,46,110,101,119,32,83,101,116,40,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,41,93,46,115,111,114,116,40,41,59,105,102,40,48,61,61,61,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,114,101,116,117,114,110,59,99,111,110,115,116,32,115,101,101,100,61,96,36,123,115,116,97,116,101,46,108,97,115,116,66,108,111,99,107,63,46,104,97,115,104,63,63,34,48,120,48,34,125,58,36,123,115,116,97,116,101,46,108,97,115,116,66,108,111,99,107,63,46,105,110,100,101,120,63,63,45,49,125,96,59,108,101,116,32,118,97,108,117,101,61,48,110,59,102,111,114,40,99,111,110,115,116,32,99,104,97,114,97,99,116,101,114,32,111,102,32,115,101,101,100,41,118,97,108,117,101,61,40,51,49,110,42,118,97,108,117,101,43,66,105,103,73,110,116,40,99,104,97,114,97,99,116,101,114,46,99,104,97,114,67,111,100,101,65,116,40,48,41,41,41,37,52,50,57,52,57,54,55,50,57,49,110,59,108,101,116,32,105,110,100,101,120,61,78,117,109,98,101,114,40,118,97,108,117,101,37,66,105,103,73,110,116,40,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,41,59,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,62,49,38,38,118,97,108,105,100,97,116,111,114,115,91,105,110,100,101,120,93,61,61,61,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,38,38,40,105,110,100,101,120,61,40,105,110,100,101,120,43,49,41,37,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,118,97,108,105,100,97,116,111,114,115,91,105,110,100,101,120,93,125,125,10,10,114,101,116,117,114,110,32,86,97,108,105,100,97,116,111,114,115,64,91,34,66,51,79,71,82,85,66,83,65,53,86,55,52,72,73,82,82,80,54,89,80,77,90,89,68,90,55,89,77,51,83,82,51,77,81,88,54,51,88,83,89,69,90,73,90,55,84,87,72,66,80,68,87,82,87,86,65,50,88,65,34,93";
|
|
52
|
+
var contractFactory = "237,198,141,3,76,70,67,1,9,3,7,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,8,162,51,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,80,117,98,108,105,99,86,111,116,105,110,103,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,118,111,116,101,115,59,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,59,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,61,49,55,50,56,101,53,59,35,118,111,116,101,78,111,110,99,101,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,118,111,116,101,115,61,115,116,97,116,101,46,118,111,116,101,115,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,115,116,97,116,101,46,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,118,111,116,101,78,111,110,99,101,63,63,79,98,106,101,99,116,46,107,101,121,115,40,115,116,97,116,101,46,118,111,116,101,115,63,63,123,125,41,46,108,101,110,103,116,104,41,41,58,40,116,104,105,115,46,35,118,111,116,101,115,61,123,125,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,49,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,48,110,41,125,103,101,116,32,118,111,116,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,118,111,116,101,115,125,125,103,101,116,32,118,111,116,105,110,103,68,117,114,97,116,105,111,110,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,125,103,101,116,32,118,111,116,105,110,103,68,105,115,97,98,108,101,100,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,118,111,116,101,115,58,116,104,105,115,46,35,118,111,116,101,115,44,118,111,116,105,110,103,68,105,115,97,98,108,101,100,58,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,118,111,116,105,110,103,68,117,114,97,116,105,111,110,58,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,118,111,116,101,78,111,110,99,101,58,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,125,125,103,101,116,32,105,110,80,114,111,103,114,101,115,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,118,111,116,101,115,41,46,102,105,108,116,101,114,40,40,91,105,100,44,118,111,116,101,93,41,61,62,33,118,111,116,101,46,102,105,110,105,115,104,101,100,41,46,109,97,112,40,40,91,105,100,44,118,111,116,101,93,41,61,62,40,123,46,46,46,118,111,116,101,44,105,100,58,105,100,125,41,41,125,99,114,101,97,116,101,86,111,116,101,40,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,44,101,110,100,84,105,109,101,44,109,101,116,104,111,100,44,97,114,103,115,61,91,93,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,99,114,101,97,116,101,32,97,32,118,111,116,101,34,41,59,99,111,110,115,116,32,105,100,61,40,43,43,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,41,46,116,111,83,116,114,105,110,103,40,41,59,116,104,105,115,46,35,118,111,116,101,115,91,105,100,93,61,123,116,105,116,108,101,58,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,58,100,101,115,99,114,105,112,116,105,111,110,44,109,101,116,104,111,100,58,109,101,116,104,111,100,44,101,110,100,84,105,109,101,58,101,110,100,84,105,109,101,44,97,114,103,115,58,97,114,103,115,125,125,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,99,97,110,86,111,116,101,63,46,40,41,125,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,98,101,102,111,114,101,86,111,116,101,63,46,40,41,125,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,123,108,101,116,32,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,49,61,61,61,114,101,115,117,108,116,41,44,100,105,115,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,48,61,61,61,114,101,115,117,108,116,41,59,97,103,114,101,101,46,108,101,110,103,116,104,62,100,105,115,97,103,114,101,101,46,108,101,110,103,116,104,38,38,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,111,117,103,104,86,111,116,101,115,38,38,116,104,105,115,91,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,109,101,116,104,111,100,93,40,46,46,46,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,97,114,103,115,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,61,33,48,125,97,115,121,110,99,32,118,111,116,101,40,118,111,116,101,73,100,44,118,111,116,101,41,123,105,102,40,48,33,61,61,40,118,111,116,101,61,78,117,109,98,101,114,40,118,111,116,101,41,41,38,38,46,53,33,61,61,118,111,116,101,38,38,49,33,61,61,118,111,116,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,118,111,116,101,32,118,97,108,117,101,32,36,123,118,111,116,101,125,96,41,59,105,102,40,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,78,111,116,104,105,110,103,32,102,111,117,110,100,32,102,111,114,32,36,123,118,111,116,101,73,100,125,96,41,59,99,111,110,115,116,32,101,110,100,101,100,61,68,97,116,101,46,110,111,119,40,41,62,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,100,84,105,109,101,59,105,102,40,101,110,100,101,100,38,38,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,44,101,110,100,101,100,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,111,116,105,110,103,32,97,108,114,101,97,100,121,32,101,110,100,101,100,34,41,59,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,118,111,116,101,34,41,59,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,91,109,115,103,46,115,101,110,100,101,114,93,61,118,111,116,101,125,35,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,48,125,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,100,105,115,97,98,108,101,32,118,111,116,105,110,103,34,44,34,87,97,114,110,105,110,103,32,116,104,105,115,32,100,105,115,97,98,108,101,115,32,97,108,108,32,118,111,116,105,110,103,32,102,101,97,116,117,114,101,115,32,102,111,114,101,118,101,114,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,100,105,115,97,98,108,101,86,111,116,105,110,103,34,44,91,93,41,125,95,115,121,110,99,40,41,123,102,111,114,40,99,111,110,115,116,32,118,111,116,101,32,111,102,32,116,104,105,115,46,105,110,80,114,111,103,114,101,115,115,41,118,111,116,101,46,101,110,100,84,105,109,101,60,68,97,116,101,46,110,111,119,40,41,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,46,105,100,41,125,125,99,108,97,115,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,32,101,120,116,101,110,100,115,32,80,117,98,108,105,99,86,111,116,105,110,103,123,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,82,101,99,101,105,118,101,114,59,35,118,111,116,101,84,121,112,101,61,34,116,114,97,110,115,102,101,114,34,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,98,117,114,110,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,115,116,97,116,101,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,115,116,97,116,101,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,115,116,97,116,101,46,118,111,116,101,84,121,112,101,41,58,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,98,117,114,110,115,38,38,40,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,34,98,117,114,110,34,41,41,125,103,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,82,101,99,101,105,118,101,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,107,101,110,82,101,99,101,105,118,101,114,58,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,118,111,116,101,84,121,112,101,58,116,104,105,115,46,35,118,111,116,101,84,121,112,101,125,125,97,115,121,110,99,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,62,61,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,97,115,121,110,99,32,95,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,125,97,115,121,110,99,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,34,98,117,114,110,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,63,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,58,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,101,102,111,114,101,86,111,116,101,40,41,123,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,125,97,115,121,110,99,32,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,117,114,110,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,97,100,100,114,101,115,115,41,123,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,97,100,100,114,101,115,115,125,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,97,109,111,117,110,116,125,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,116,121,112,101,125,35,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,34,116,114,97,110,115,102,101,114,34,44,91,114,101,99,101,105,118,101,114,44,97,109,111,117,110,116,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,38,38,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,62,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,34,44,91,116,121,112,101,93,41,125,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,34,44,96,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,32,116,111,32,36,123,114,101,99,101,105,118,101,114,125,96,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,103,101,116,84,111,107,101,110,115,79,117,116,34,44,91,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,93,41,125,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,35,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,48,110,33,61,61,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,38,38,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,32,116,111,32,97,32,110,101,119,32,97,100,100,114,101,115,115,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,125,99,108,97,115,115,32,70,97,99,116,111,114,121,32,101,120,116,101,110,100,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,34,59,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,66,105,103,73,110,116,40,48,41,59,35,99,111,110,116,114,97,99,116,115,61,91,93,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,115,116,97,116,101,41,123,115,117,112,101,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,33,48,44,115,116,97,116,101,41,44,115,116,97,116,101,38,38,40,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,99,111,110,116,114,97,99,116,115,44,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,116,111,116,97,108,67,111,110,116,114,97,99,116,115,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,116,97,108,67,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,44,99,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,125,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,99,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,91,46,46,46,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,93,125,103,101,116,32,116,111,116,97,108,67,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,125,105,115,82,101,103,105,115,116,101,114,101,100,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,97,100,100,114,101,115,115,44,34,99,114,101,97,116,111,114,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,125,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,125,97,115,121,110,99,32,114,101,103,105,115,116,101,114,67,111,110,116,114,97,99,116,40,97,100,100,114,101,115,115,41,123,105,102,40,33,97,119,97,105,116,32,116,104,105,115,46,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,89,111,117,32,100,111,110,39,116,32,111,119,110,32,116,104,97,116,32,99,111,110,116,114,97,99,116,34,41,59,105,102,40,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,108,114,101,97,100,121,32,114,101,103,105,115,116,101,114,101,100,34,41,59,97,119,97,105,116,32,116,104,105,115,46,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,44,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,43,61,49,110,44,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,125,10,10,114,101,116,117,114,110,32,70,97,99,116,111,114,121,9,2,7,60,66,51,79,71,82,85,66,83,66,83,87,72,89,71,78,89,84,52,79,53,55,69,75,55,81,53,90,78,88,89,70,82,50,51,67,67,83,52,69,85,81,80,81,51,52,82,85,53,55,86,54,82,79,81,78,76,89,73,86,78,7,22,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48";
|
|
53
|
+
var nativeToken = "237,198,141,3,76,70,67,1,9,3,7,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,8,166,65,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,82,111,108,101,115,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,114,111,108,101,115,61,123,79,87,78,69,82,58,91,93,44,77,73,78,84,58,91,93,44,66,85,82,78,58,91,93,125,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,105,102,40,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,46,114,111,108,101,115,41,123,105,102,40,33,40,115,116,97,116,101,46,114,111,108,101,115,32,105,110,115,116,97,110,99,101,111,102,32,79,98,106,101,99,116,41,41,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,101,120,112,101,99,116,101,100,32,114,111,108,101,115,32,116,111,32,98,101,32,97,110,32,111,98,106,101,99,116,34,41,59,116,104,105,115,46,35,114,111,108,101,115,61,123,46,46,46,115,116,97,116,101,46,114,111,108,101,115,125,125,101,108,115,101,32,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,111,108,101,115,58,116,104,105,115,46,114,111,108,101,115,125,125,103,101,116,32,114,111,108,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,114,101,116,117,114,110,33,33,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,38,38,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,103,114,97,110,116,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,114,101,118,111,107,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,105,102,40,34,79,87,78,69,82,34,61,61,61,114,111,108,101,38,38,49,61,61,61,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,116,108,101,97,115,116,32,111,110,101,32,111,119,110,101,114,32,105,115,32,110,101,101,100,101,100,33,34,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,115,112,108,105,99,101,40,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,100,101,120,79,102,40,97,100,100,114,101,115,115,41,41,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,125,99,108,97,115,115,32,84,111,107,101,110,32,101,120,116,101,110,100,115,32,82,111,108,101,115,123,35,110,97,109,101,59,35,115,121,109,98,111,108,59,35,104,111,108,100,101,114,115,61,48,110,59,35,98,97,108,97,110,99,101,115,61,123,125,59,35,97,112,112,114,111,118,97,108,115,61,123,125,59,35,100,101,99,105,109,97,108,115,61,49,56,59,35,116,111,116,97,108,83,117,112,112,108,121,61,48,110,59,99,111,110,115,116,114,117,99,116,111,114,40,110,97,109,101,44,115,121,109,98,111,108,44,100,101,99,105,109,97,108,115,61,49,56,44,115,116,97,116,101,41,123,105,102,40,33,110,97,109,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,97,109,101,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,33,115,121,109,98,111,108,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,115,121,109,98,111,108,32,117,110,100,101,102,105,110,101,100,34,41,59,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,98,97,108,97,110,99,101,115,61,40,98,97,108,97,110,99,101,115,61,62,123,99,111,110,115,116,32,95,98,97,108,97,110,99,101,115,61,123,125,59,102,111,114,40,99,111,110,115,116,32,97,100,100,114,101,115,115,32,105,110,32,98,97,108,97,110,99,101,115,41,95,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,66,105,103,73,110,116,40,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,41,59,114,101,116,117,114,110,32,95,98,97,108,97,110,99,101,115,125,41,40,115,116,97,116,101,46,98,97,108,97,110,99,101,115,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,61,40,97,112,112,114,111,118,97,108,115,61,62,123,99,111,110,115,116,32,95,97,112,112,114,111,118,97,108,115,61,123,125,59,102,111,114,40,99,111,110,115,116,32,111,119,110,101,114,32,105,110,32,97,112,112,114,111,118,97,108,115,41,123,95,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,61,123,125,59,102,111,114,40,99,111,110,115,116,32,111,112,101,114,97,116,111,114,32,105,110,32,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,41,95,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,66,105,103,73,110,116,40,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,41,125,114,101,116,117,114,110,32,95,97,112,112,114,111,118,97,108,115,125,41,40,115,116,97,116,101,46,97,112,112,114,111,118,97,108,115,41,44,116,104,105,115,46,35,104,111,108,100,101,114,115,61,66,105,103,73,110,116,40,115,116,97,116,101,46,104,111,108,100,101,114,115,41,44,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,116,97,108,83,117,112,112,108,121,41,41,58,40,116,104,105,115,46,35,110,97,109,101,61,110,97,109,101,44,116,104,105,115,46,35,115,121,109,98,111,108,61,115,121,109,98,111,108,44,116,104,105,115,46,35,100,101,99,105,109,97,108,115,61,100,101,99,105,109,97,108,115,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,104,111,108,100,101,114,115,58,116,104,105,115,46,104,111,108,100,101,114,115,44,98,97,108,97,110,99,101,115,58,116,104,105,115,46,98,97,108,97,110,99,101,115,44,97,112,112,114,111,118,97,108,115,58,123,46,46,46,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,125,44,116,111,116,97,108,83,117,112,112,108,121,58,116,104,105,115,46,116,111,116,97,108,83,117,112,112,108,121,125,125,103,101,116,32,116,111,116,97,108,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,115,121,109,98,111,108,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,115,121,109,98,111,108,125,103,101,116,32,104,111,108,100,101,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,104,111,108,100,101,114,115,125,103,101,116,32,98,97,108,97,110,99,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,98,97,108,97,110,99,101,115,125,125,103,101,116,32,97,112,112,114,111,118,97,108,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,102,114,111,109,69,110,116,114,105,101,115,40,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,41,46,109,97,112,40,40,91,111,119,110,101,114,44,97,112,112,114,111,118,97,108,115,93,41,61,62,91,111,119,110,101,114,44,123,46,46,46,97,112,112,114,111,118,97,108,115,125,93,41,41,125,103,101,116,32,100,101,99,105,109,97,108,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,100,101,99,105,109,97,108,115,125,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,77,73,78,84,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,105,102,40,33,116,111,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,43,97,109,111,117,110,116,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,66,85,82,78,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,45,97,109,111,117,110,116,44,116,104,105,115,46,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,102,114,111,109,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,102,114,111,109,44,97,109,111,117,110,116,41,125,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,102,114,111,109,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,33,116,111,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,97,109,111,117,110,116,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,33,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,124,124,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,34,41,125,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,123,48,110,61,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,63,116,104,105,115,46,35,104,111,108,100,101,114,115,45,61,49,110,58,48,110,33,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,38,38,48,110,61,61,61,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,38,38,40,116,104,105,115,46,35,104,111,108,100,101,114,115,43,61,49,110,41,125,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,124,124,40,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,48,110,41,59,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,43,97,109,111,117,110,116,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,45,97,109,111,117,110,116,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,109,115,103,46,115,101,110,100,101,114,93,63,63,48,110,125,98,97,108,97,110,99,101,79,102,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,63,63,48,110,125,115,101,116,65,112,112,114,111,118,97,108,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,114,101,116,117,114,110,32,116,104,105,115,46,97,112,112,114,111,118,101,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,125,97,112,112,114,111,118,101,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,111,119,110,101,114,61,109,115,103,46,115,101,110,100,101,114,59,105,102,40,33,111,112,101,114,97,116,111,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,112,101,114,97,116,111,114,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,112,112,114,111,118,97,108,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,124,124,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,61,123,125,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,97,109,111,117,110,116,125,97,112,112,114,111,118,101,100,40,111,119,110,101,114,44,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,114,101,116,117,114,110,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,63,46,91,111,112,101,114,97,116,111,114,93,63,63,48,110,41,61,61,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,125,97,108,108,111,119,97,110,99,101,40,111,119,110,101,114,44,111,112,101,114,97,116,111,114,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,63,46,91,111,112,101,114,97,116,111,114,93,63,63,48,110,125,35,116,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,102,114,111,109,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,116,114,97,110,115,102,101,114,40,116,111,44,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,114,97,110,115,102,101,114,40,109,115,103,46,115,101,110,100,101,114,44,116,111,44,97,109,111,117,110,116,41,125,116,114,97,110,115,102,101,114,70,114,111,109,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,59,99,111,110,115,116,32,111,112,101,114,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,97,108,108,111,119,97,110,99,101,61,116,104,105,115,46,97,108,108,111,119,97,110,99,101,40,102,114,111,109,44,111,112,101,114,97,116,111,114,41,59,105,102,40,97,108,108,111,119,97,110,99,101,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,97,108,108,111,119,97,110,99,101,34,41,59,116,104,105,115,46,35,116,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,102,114,111,109,93,91,111,112,101,114,97,116,111,114,93,61,97,108,108,111,119,97,110,99,101,45,97,109,111,117,110,116,125,125,99,111,110,115,116,32,77,79,78,69,84,65,82,89,95,80,79,76,73,67,89,95,65,85,84,72,79,82,73,84,89,61,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,59,99,108,97,115,115,32,76,101,111,102,99,111,105,110,32,101,120,116,101,110,100,115,32,84,111,107,101,110,123,35,116,97,114,103,101,116,83,117,112,112,108,121,59,35,105,110,105,116,105,97,108,83,117,112,112,108,121,59,99,111,110,115,116,114,117,99,116,111,114,40,116,97,114,103,101,116,83,117,112,112,108,121,44,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,44,97,108,108,111,99,97,116,105,111,110,115,61,91,93,44,114,101,115,116,111,114,101,100,83,116,97,116,101,41,123,99,111,110,115,116,32,108,101,103,97,99,121,83,116,97,116,101,61,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,38,38,34,111,98,106,101,99,116,34,61,61,116,121,112,101,111,102,32,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,38,38,33,65,114,114,97,121,46,105,115,65,114,114,97,121,40,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,41,63,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,58,118,111,105,100,32,48,44,115,116,97,116,101,61,114,101,115,116,111,114,101,100,83,116,97,116,101,124,124,108,101,103,97,99,121,83,116,97,116,101,44,105,110,105,116,105,97,108,83,117,112,112,108,121,61,115,116,97,116,101,63,66,105,103,73,110,116,40,115,116,97,116,101,46,105,110,105,116,105,97,108,83,117,112,112,108,121,63,63,115,116,97,116,101,46,116,111,116,97,108,83,117,112,112,108,121,41,58,66,105,103,73,110,116,40,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,41,59,105,102,40,115,117,112,101,114,40,34,76,101,111,102,99,111,105,110,34,44,34,76,70,67,34,44,49,56,44,115,116,97,116,101,124,124,40,40,105,110,105,116,105,97,108,83,117,112,112,108,121,44,97,108,108,111,99,97,116,105,111,110,115,41,61,62,123,105,102,40,40,105,110,105,116,105,97,108,83,117,112,112,108,121,61,66,105,103,73,110,116,40,105,110,105,116,105,97,108,83,117,112,112,108,121,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,105,116,105,97,108,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,33,65,114,114,97,121,46,105,115,65,114,114,97,121,40,97,108,108,111,99,97,116,105,111,110,115,41,124,124,48,61,61,61,97,108,108,111,99,97,116,105,111,110,115,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,115,32,97,114,101,32,114,101,113,117,105,114,101,100,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,115,61,123,125,59,108,101,116,32,97,108,108,111,99,97,116,101,100,61,48,110,59,102,111,114,40,99,111,110,115,116,32,97,108,108,111,99,97,116,105,111,110,32,111,102,91,46,46,46,97,108,108,111,99,97,116,105,111,110,115,93,46,115,111,114,116,40,40,108,101,102,116,44,114,105,103,104,116,41,61,62,108,101,102,116,46,97,100,100,114,101,115,115,46,108,111,99,97,108,101,67,111,109,112,97,114,101,40,114,105,103,104,116,46,97,100,100,114,101,115,115,41,41,41,123,105,102,40,33,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,124,124,118,111,105,100,32,48,33,61,61,98,97,108,97,110,99,101,115,91,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,118,97,108,105,100,32,111,114,32,100,117,112,108,105,99,97,116,101,32,103,101,110,101,115,105,115,32,97,100,100,114,101,115,115,34,41,59,99,111,110,115,116,32,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,108,108,111,99,97,116,105,111,110,46,97,109,111,117,110,116,41,59,105,102,40,97,109,111,117,110,116,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,98,97,108,97,110,99,101,115,91,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,93,61,97,109,111,117,110,116,44,97,108,108,111,99,97,116,101,100,43,61,97,109,111,117,110,116,125,105,102,40,97,108,108,111,99,97,116,101,100,33,61,61,105,110,105,116,105,97,108,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,115,32,109,117,115,116,32,101,113,117,97,108,32,105,110,105,116,105,97,108,32,115,117,112,112,108,121,58,32,101,120,112,101,99,116,101,100,32,36,123,105,110,105,116,105,97,108,83,117,112,112,108,121,125,44,32,103,111,116,32,36,123,97,108,108,111,99,97,116,101,100,125,96,41,59,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,109,115,103,46,115,101,110,100,101,114,44,99,114,101,97,116,101,100,65,116,58,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,44,114,111,108,101,115,58,123,79,87,78,69,82,58,91,109,115,103,46,115,101,110,100,101,114,93,44,77,73,78,84,58,91,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,93,44,66,85,82,78,58,91,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,93,125,44,104,111,108,100,101,114,115,58,66,105,103,73,110,116,40,79,98,106,101,99,116,46,107,101,121,115,40,98,97,108,97,110,99,101,115,41,46,108,101,110,103,116,104,41,44,98,97,108,97,110,99,101,115,58,98,97,108,97,110,99,101,115,44,97,112,112,114,111,118,97,108,115,58,123,125,44,116,111,116,97,108,83,117,112,112,108,121,58,105,110,105,116,105,97,108,83,117,112,112,108,121,125,125,41,40,105,110,105,116,105,97,108,83,117,112,112,108,121,44,97,108,108,111,99,97,116,105,111,110,115,41,41,44,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,61,115,116,97,116,101,63,66,105,103,73,110,116,40,115,116,97,116,101,46,116,97,114,103,101,116,83,117,112,112,108,121,41,58,66,105,103,73,110,116,40,116,97,114,103,101,116,83,117,112,112,108,121,41,44,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,61,105,110,105,116,105,97,108,83,117,112,112,108,121,44,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,116,97,114,103,101,116,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,60,61,48,110,124,124,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,62,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,105,116,105,97,108,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,32,97,110,100,32,110,111,116,32,101,120,99,101,101,100,32,116,97,114,103,101,116,32,115,117,112,112,108,121,34,41,125,103,101,116,32,116,97,114,103,101,116,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,125,103,101,116,32,105,110,105,116,105,97,108,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,34,76,101,111,102,99,111,105,110,34,125,103,101,116,32,115,121,109,98,111,108,40,41,123,114,101,116,117,114,110,34,76,70,67,34,125,103,101,116,32,100,101,99,105,109,97,108,115,40,41,123,114,101,116,117,114,110,32,49,56,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,105,110,105,116,105,97,108,83,117,112,112,108,121,58,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,44,116,97,114,103,101,116,83,117,112,112,108,121,58,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,125,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,34,77,73,78,84,34,61,61,61,114,111,108,101,124,124,34,66,85,82,78,34,61,61,61,114,111,108,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,112,114,111,116,111,99,111,108,32,109,111,110,101,116,97,114,121,32,114,111,108,101,115,32,97,114,101,32,105,109,109,117,116,97,98,108,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,34,77,73,78,84,34,61,61,61,114,111,108,101,124,124,34,66,85,82,78,34,61,61,61,114,111,108,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,112,114,111,116,111,99,111,108,32,109,111,110,101,116,97,114,121,32,114,111,108,101,115,32,97,114,101,32,105,109,109,117,116,97,98,108,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,123,105,102,40,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,33,61,61,109,115,103,46,115,101,110,100,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,110,108,121,32,116,104,101,32,109,111,110,101,116,97,114,121,32,112,114,111,116,111,99,111,108,32,109,97,121,32,109,105,110,116,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,109,105,110,116,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,116,111,116,97,108,83,117,112,112,108,121,43,97,109,111,117,110,116,62,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,109,105,110,116,32,101,120,99,101,101,100,115,32,116,97,114,103,101,116,32,115,117,112,112,108,121,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,125,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,123,105,102,40,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,33,61,61,109,115,103,46,115,101,110,100,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,110,108,121,32,116,104,101,32,109,111,110,101,116,97,114,121,32,112,114,111,116,111,99,111,108,32,109,97,121,32,98,117,114,110,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,98,117,114,110,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,98,97,108,97,110,99,101,79,102,40,102,114,111,109,41,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,125,125,10,10,114,101,116,117,114,110,32,76,101,111,102,99,111,105,110,9,3,7,28,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,7,26,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,9,1,10,2,7,97,100,100,114,101,115,115,7,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,6,97,109,111,117,110,116,7,26,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48";
|
|
54
|
+
var nameService = "237,198,141,3,76,70,67,1,9,3,7,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,8,173,52,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,80,117,98,108,105,99,86,111,116,105,110,103,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,118,111,116,101,115,59,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,59,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,61,49,55,50,56,101,53,59,35,118,111,116,101,78,111,110,99,101,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,118,111,116,101,115,61,115,116,97,116,101,46,118,111,116,101,115,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,115,116,97,116,101,46,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,118,111,116,101,78,111,110,99,101,63,63,79,98,106,101,99,116,46,107,101,121,115,40,115,116,97,116,101,46,118,111,116,101,115,63,63,123,125,41,46,108,101,110,103,116,104,41,41,58,40,116,104,105,115,46,35,118,111,116,101,115,61,123,125,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,49,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,48,110,41,125,103,101,116,32,118,111,116,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,118,111,116,101,115,125,125,103,101,116,32,118,111,116,105,110,103,68,117,114,97,116,105,111,110,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,125,103,101,116,32,118,111,116,105,110,103,68,105,115,97,98,108,101,100,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,118,111,116,101,115,58,116,104,105,115,46,35,118,111,116,101,115,44,118,111,116,105,110,103,68,105,115,97,98,108,101,100,58,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,118,111,116,105,110,103,68,117,114,97,116,105,111,110,58,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,118,111,116,101,78,111,110,99,101,58,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,125,125,103,101,116,32,105,110,80,114,111,103,114,101,115,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,118,111,116,101,115,41,46,102,105,108,116,101,114,40,40,91,105,100,44,118,111,116,101,93,41,61,62,33,118,111,116,101,46,102,105,110,105,115,104,101,100,41,46,109,97,112,40,40,91,105,100,44,118,111,116,101,93,41,61,62,40,123,46,46,46,118,111,116,101,44,105,100,58,105,100,125,41,41,125,99,114,101,97,116,101,86,111,116,101,40,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,44,101,110,100,84,105,109,101,44,109,101,116,104,111,100,44,97,114,103,115,61,91,93,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,99,114,101,97,116,101,32,97,32,118,111,116,101,34,41,59,99,111,110,115,116,32,105,100,61,40,43,43,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,41,46,116,111,83,116,114,105,110,103,40,41,59,116,104,105,115,46,35,118,111,116,101,115,91,105,100,93,61,123,116,105,116,108,101,58,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,58,100,101,115,99,114,105,112,116,105,111,110,44,109,101,116,104,111,100,58,109,101,116,104,111,100,44,101,110,100,84,105,109,101,58,101,110,100,84,105,109,101,44,97,114,103,115,58,97,114,103,115,125,125,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,99,97,110,86,111,116,101,63,46,40,41,125,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,98,101,102,111,114,101,86,111,116,101,63,46,40,41,125,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,123,108,101,116,32,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,49,61,61,61,114,101,115,117,108,116,41,44,100,105,115,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,48,61,61,61,114,101,115,117,108,116,41,59,97,103,114,101,101,46,108,101,110,103,116,104,62,100,105,115,97,103,114,101,101,46,108,101,110,103,116,104,38,38,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,111,117,103,104,86,111,116,101,115,38,38,116,104,105,115,91,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,109,101,116,104,111,100,93,40,46,46,46,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,97,114,103,115,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,61,33,48,125,97,115,121,110,99,32,118,111,116,101,40,118,111,116,101,73,100,44,118,111,116,101,41,123,105,102,40,48,33,61,61,40,118,111,116,101,61,78,117,109,98,101,114,40,118,111,116,101,41,41,38,38,46,53,33,61,61,118,111,116,101,38,38,49,33,61,61,118,111,116,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,118,111,116,101,32,118,97,108,117,101,32,36,123,118,111,116,101,125,96,41,59,105,102,40,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,78,111,116,104,105,110,103,32,102,111,117,110,100,32,102,111,114,32,36,123,118,111,116,101,73,100,125,96,41,59,99,111,110,115,116,32,101,110,100,101,100,61,68,97,116,101,46,110,111,119,40,41,62,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,100,84,105,109,101,59,105,102,40,101,110,100,101,100,38,38,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,44,101,110,100,101,100,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,111,116,105,110,103,32,97,108,114,101,97,100,121,32,101,110,100,101,100,34,41,59,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,118,111,116,101,34,41,59,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,91,109,115,103,46,115,101,110,100,101,114,93,61,118,111,116,101,125,35,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,48,125,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,100,105,115,97,98,108,101,32,118,111,116,105,110,103,34,44,34,87,97,114,110,105,110,103,32,116,104,105,115,32,100,105,115,97,98,108,101,115,32,97,108,108,32,118,111,116,105,110,103,32,102,101,97,116,117,114,101,115,32,102,111,114,101,118,101,114,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,100,105,115,97,98,108,101,86,111,116,105,110,103,34,44,91,93,41,125,95,115,121,110,99,40,41,123,102,111,114,40,99,111,110,115,116,32,118,111,116,101,32,111,102,32,116,104,105,115,46,105,110,80,114,111,103,114,101,115,115,41,118,111,116,101,46,101,110,100,84,105,109,101,60,68,97,116,101,46,110,111,119,40,41,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,46,105,100,41,125,125,99,108,97,115,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,32,101,120,116,101,110,100,115,32,80,117,98,108,105,99,86,111,116,105,110,103,123,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,82,101,99,101,105,118,101,114,59,35,118,111,116,101,84,121,112,101,61,34,116,114,97,110,115,102,101,114,34,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,98,117,114,110,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,115,116,97,116,101,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,115,116,97,116,101,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,115,116,97,116,101,46,118,111,116,101,84,121,112,101,41,58,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,98,117,114,110,115,38,38,40,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,34,98,117,114,110,34,41,41,125,103,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,82,101,99,101,105,118,101,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,107,101,110,82,101,99,101,105,118,101,114,58,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,118,111,116,101,84,121,112,101,58,116,104,105,115,46,35,118,111,116,101,84,121,112,101,125,125,97,115,121,110,99,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,62,61,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,97,115,121,110,99,32,95,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,125,97,115,121,110,99,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,34,98,117,114,110,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,63,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,58,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,101,102,111,114,101,86,111,116,101,40,41,123,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,125,97,115,121,110,99,32,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,117,114,110,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,97,100,100,114,101,115,115,41,123,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,97,100,100,114,101,115,115,125,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,97,109,111,117,110,116,125,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,116,121,112,101,125,35,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,34,116,114,97,110,115,102,101,114,34,44,91,114,101,99,101,105,118,101,114,44,97,109,111,117,110,116,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,38,38,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,62,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,34,44,91,116,121,112,101,93,41,125,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,34,44,96,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,32,116,111,32,36,123,114,101,99,101,105,118,101,114,125,96,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,103,101,116,84,111,107,101,110,115,79,117,116,34,44,91,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,93,41,125,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,35,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,48,110,33,61,61,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,38,38,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,32,116,111,32,97,32,110,101,119,32,97,100,100,114,101,115,115,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,125,99,108,97,115,115,32,78,97,109,101,83,101,114,118,105,99,101,32,101,120,116,101,110,100,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,78,97,109,101,83,101,114,118,105,99,101,34,59,35,114,101,103,105,115,116,114,121,61,123,125,59,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,114,101,103,105,115,116,114,121,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,101,103,105,115,116,114,121,125,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,101,103,105,115,116,114,121,58,116,104,105,115,46,35,114,101,103,105,115,116,114,121,125,125,99,111,110,115,116,114,117,99,116,111,114,40,102,97,99,116,111,114,121,65,100,100,114,101,115,115,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,115,116,97,116,101,41,123,115,117,112,101,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,33,48,44,115,116,97,116,101,41,44,115,116,97,116,101,63,116,104,105,115,46,35,114,101,103,105,115,116,114,121,61,115,116,97,116,101,46,114,101,103,105,115,116,114,121,58,40,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,109,115,103,46,99,111,110,116,114,97,99,116,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,84,111,107,101,110,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,86,97,108,105,100,97,116,111,114,115,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,125,41,125,97,115,121,110,99,32,112,117,114,99,104,97,115,101,78,97,109,101,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,97,109,101,32,97,108,114,101,97,100,121,32,114,101,103,105,115,116,101,114,101,100,34,41,59,97,119,97,105,116,32,116,104,105,115,46,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,97,100,100,114,101,115,115,125,125,108,111,111,107,117,112,40,110,97,109,101,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,125,116,114,97,110,115,102,101,114,79,119,110,101,114,115,104,105,112,40,110,97,109,101,44,116,111,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,61,116,111,125,99,104,97,110,103,101,65,100,100,114,101,115,115,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,97,100,100,114,101,115,115,61,97,100,100,114,101,115,115,125,125,10,10,114,101,116,117,114,110,32,78,97,109,101,83,101,114,118,105,99,101,9,4,7,60,66,51,79,71,82,85,66,83,65,82,75,65,77,87,72,90,76,90,90,65,76,53,89,52,83,82,85,74,79,69,52,82,73,77,81,88,52,83,69,76,78,76,77,84,81,86,80,66,71,70,81,88,69,70,53,82,80,80,72,86,7,60,66,51,79,71,82,85,66,83,66,83,87,72,89,71,78,89,84,52,79,53,55,69,75,55,81,53,90,78,88,89,70,82,50,51,67,67,83,52,69,85,81,80,81,51,52,82,85,53,55,86,54,82,79,81,78,76,89,73,86,78,7,60,66,51,79,71,82,85,66,83,66,84,54,85,68,52,71,54,86,51,75,80,55,90,54,71,50,68,76,77,77,79,86,53,68,53,73,70,73,90,72,50,73,51,75,68,50,67,75,54,86,70,68,51,67,89,89,50,78,67,75,86,7,22,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48";
|
|
55
|
+
var validators = "237,198,141,3,76,70,67,1,9,3,7,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,8,206,33,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,82,111,108,101,115,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,114,111,108,101,115,61,123,79,87,78,69,82,58,91,93,44,77,73,78,84,58,91,93,44,66,85,82,78,58,91,93,125,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,105,102,40,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,46,114,111,108,101,115,41,123,105,102,40,33,40,115,116,97,116,101,46,114,111,108,101,115,32,105,110,115,116,97,110,99,101,111,102,32,79,98,106,101,99,116,41,41,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,101,120,112,101,99,116,101,100,32,114,111,108,101,115,32,116,111,32,98,101,32,97,110,32,111,98,106,101,99,116,34,41,59,116,104,105,115,46,35,114,111,108,101,115,61,123,46,46,46,115,116,97,116,101,46,114,111,108,101,115,125,125,101,108,115,101,32,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,111,108,101,115,58,116,104,105,115,46,114,111,108,101,115,125,125,103,101,116,32,114,111,108,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,114,101,116,117,114,110,33,33,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,38,38,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,103,114,97,110,116,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,114,101,118,111,107,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,105,102,40,34,79,87,78,69,82,34,61,61,61,114,111,108,101,38,38,49,61,61,61,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,116,108,101,97,115,116,32,111,110,101,32,111,119,110,101,114,32,105,115,32,110,101,101,100,101,100,33,34,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,115,112,108,105,99,101,40,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,100,101,120,79,102,40,97,100,100,114,101,115,115,41,41,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,125,99,108,97,115,115,32,86,97,108,105,100,97,116,111,114,115,32,101,120,116,101,110,100,115,32,82,111,108,101,115,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,86,97,108,105,100,97,116,111,114,115,34,59,35,118,97,108,105,100,97,116,111,114,115,61,91,93,59,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,59,35,99,117,114,114,101,110,99,121,59,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,66,105,103,73,110,116,40,53,101,52,41,59,35,98,97,108,97,110,99,101,115,61,123,125,59,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,61,123,125,59,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,98,97,108,97,110,99,101,115,58,116,104,105,115,46,35,98,97,108,97,110,99,101,115,44,109,105,110,105,109,117,109,66,97,108,97,110,99,101,58,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,99,117,114,114,101,110,99,121,58,116,104,105,115,46,35,99,117,114,114,101,110,99,121,44,118,97,108,105,100,97,116,111,114,115,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,44,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,58,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,44,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,125,125,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,65,100,100,114,101,115,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,41,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,115,116,97,116,101,46,99,117,114,114,101,110,99,121,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,61,115,116,97,116,101,46,118,97,108,105,100,97,116,111,114,115,44,116,104,105,115,46,35,98,97,108,97,110,99,101,115,61,115,116,97,116,101,46,98,97,108,97,110,99,101,115,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,115,116,97,116,101,46,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,61,115,116,97,116,101,46,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,124,124,123,125,41,58,40,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,116,111,107,101,110,65,100,100,114,101,115,115,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,112,117,115,104,40,109,115,103,46,115,101,110,100,101,114,41,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,48,93,61,91,109,115,103,46,115,101,110,100,101,114,93,41,125,103,101,116,32,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,99,117,114,114,101,110,99,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,117,114,114,101,110,99,121,125,103,101,116,32,118,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,103,101,116,32,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,125,103,101,116,32,109,105,110,105,109,117,109,66,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,99,104,97,110,103,101,67,117,114,114,101,110,99,121,40,99,117,114,114,101,110,99,121,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,110,32,111,119,110,101,114,34,41,59,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,99,117,114,114,101,110,99,121,125,104,97,115,40,118,97,108,105,100,97,116,111,114,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,105,110,99,108,117,100,101,115,40,118,97,108,105,100,97,116,111,114,41,125,35,105,115,65,108,108,111,119,101,100,40,97,100,100,114,101,115,115,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,97,100,100,114,101,115,115,38,38,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,115,101,110,100,101,114,32,105,115,32,110,111,116,32,116,104,101,32,118,97,108,105,100,97,116,111,114,32,111,114,32,111,119,110,101,114,34,41,59,114,101,116,117,114,110,33,48,125,118,97,108,105,100,97,116,111,114,115,66,121,72,101,105,103,104,116,40,104,101,105,103,104,116,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,63,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,114,101,99,111,114,100,86,97,108,105,100,97,116,111,114,83,110,97,112,115,104,111,116,40,104,101,105,103,104,116,41,123,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,61,91,46,46,46,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,93,125,97,115,121,110,99,32,97,100,100,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,116,104,105,115,46,35,105,115,65,108,108,111,119,101,100,40,118,97,108,105,100,97,116,111,114,41,44,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,97,108,105,100,97,116,111,114,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,61,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,98,97,108,97,110,99,101,79,102,34,44,91,118,97,108,105,100,97,116,111,114,93,41,59,105,102,40,116,104,105,115,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,62,98,97,108,97,110,99,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,98,97,108,97,110,99,101,32,116,111,32,108,111,119,33,32,103,111,116,58,32,36,123,98,97,108,97,110,99,101,125,32,110,101,101,100,58,32,36,123,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,96,41,59,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,118,97,108,105,100,97,116,111,114,44,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,93,41,44,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,118,97,108,105,100,97,116,111,114,93,61,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,112,117,115,104,40,118,97,108,105,100,97,116,111,114,41,125,97,115,121,110,99,32,114,101,109,111,118,101,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,116,104,105,115,46,35,105,115,65,108,108,111,119,101,100,40,118,97,108,105,100,97,116,111,114,41,44,33,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,97,108,105,100,97,116,111,114,32,110,111,116,32,102,111,117,110,100,34,41,59,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,116,114,97,110,115,102,101,114,34,44,91,118,97,108,105,100,97,116,111,114,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,93,41,44,100,101,108,101,116,101,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,118,97,108,105,100,97,116,111,114,93,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,115,112,108,105,99,101,40,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,105,110,100,101,120,79,102,40,118,97,108,105,100,97,116,111,114,41,44,49,41,125,115,104,117,102,102,108,101,86,97,108,105,100,97,116,111,114,40,41,123,99,111,110,115,116,32,118,97,108,105,100,97,116,111,114,115,61,91,46,46,46,110,101,119,32,83,101,116,40,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,41,93,46,115,111,114,116,40,41,59,105,102,40,48,61,61,61,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,114,101,116,117,114,110,59,99,111,110,115,116,32,115,101,101,100,61,96,36,123,115,116,97,116,101,46,108,97,115,116,66,108,111,99,107,63,46,104,97,115,104,63,63,34,48,120,48,34,125,58,36,123,115,116,97,116,101,46,108,97,115,116,66,108,111,99,107,63,46,105,110,100,101,120,63,63,45,49,125,96,59,108,101,116,32,118,97,108,117,101,61,48,110,59,102,111,114,40,99,111,110,115,116,32,99,104,97,114,97,99,116,101,114,32,111,102,32,115,101,101,100,41,118,97,108,117,101,61,40,51,49,110,42,118,97,108,117,101,43,66,105,103,73,110,116,40,99,104,97,114,97,99,116,101,114,46,99,104,97,114,67,111,100,101,65,116,40,48,41,41,41,37,52,50,57,52,57,54,55,50,57,49,110,59,108,101,116,32,105,110,100,101,120,61,78,117,109,98,101,114,40,118,97,108,117,101,37,66,105,103,73,110,116,40,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,41,59,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,62,49,38,38,118,97,108,105,100,97,116,111,114,115,91,105,110,100,101,120,93,61,61,61,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,38,38,40,105,110,100,101,120,61,40,105,110,100,101,120,43,49,41,37,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,118,97,108,105,100,97,116,111,114,115,91,105,110,100,101,120,93,125,125,10,10,114,101,116,117,114,110,32,86,97,108,105,100,97,116,111,114,115,9,1,7,60,66,51,79,71,82,85,66,83,66,83,87,72,89,71,78,89,84,52,79,53,55,69,75,55,81,53,90,78,88,89,70,82,50,51,67,67,83,52,69,85,81,80,81,51,52,82,85,53,55,86,54,82,79,81,78,76,89,73,86,78";
|
|
973
56
|
var bytecodes = {
|
|
974
57
|
contractFactory: contractFactory,
|
|
975
58
|
nativeToken: nativeToken,
|
|
@@ -980,130 +63,9 @@ var bytecodes = {
|
|
|
980
63
|
const TRANSACTION_FEE_BYTES = 1024n;
|
|
981
64
|
const TRANSACTION_FEE_UNIT = 10n;
|
|
982
65
|
const MAX_TRANSACTION_BYTES = 32 * 1024;
|
|
983
|
-
const MAX_BLOCK_TRANSACTION_BYTES = 128 * 1024;
|
|
984
|
-
const MAX_BLOCK_TRANSACTIONS = 256;
|
|
985
66
|
(BigInt(MAX_TRANSACTION_BYTES) / TRANSACTION_FEE_BYTES) * TRANSACTION_FEE_UNIT;
|
|
986
|
-
const FEE_BASIS_POINTS = 10000n;
|
|
987
|
-
const FEE_PROTOCOL_VERSION = '0.3.0';
|
|
988
|
-
const MONETARY_POLICY_PROTOCOL_VERSION = '0.3.0';
|
|
989
67
|
/** Reserved VM sender; deliberately not a wallet address. */
|
|
990
68
|
const MONETARY_POLICY_AUTHORITY = 'leofcoin:protocol:monetary-policy:v1';
|
|
991
|
-
const BLOCKS_PER_YEAR = 5256000n;
|
|
992
|
-
const ANNUAL_ISSUANCE_BASIS_POINTS = 200n;
|
|
993
|
-
const SUPPLY_FLOOR_BASIS_POINTS = 9500n;
|
|
994
|
-
const MONETARY_FEE_BURN_BASIS_POINTS = 1000n;
|
|
995
|
-
const parseProtocolVersion = (version) => {
|
|
996
|
-
const match = /^(\d+)\.(\d+)\.(\d+)/.exec(version);
|
|
997
|
-
return match ? [Number(match[1]), Number(match[2]), Number(match[3])] : undefined;
|
|
998
|
-
};
|
|
999
|
-
const supportsTransactionFees = (version) => {
|
|
1000
|
-
const actual = parseProtocolVersion(version);
|
|
1001
|
-
const required = parseProtocolVersion(FEE_PROTOCOL_VERSION);
|
|
1002
|
-
if (!actual)
|
|
1003
|
-
return false;
|
|
1004
|
-
for (let index = 0; index < required.length; index += 1) {
|
|
1005
|
-
if (actual[index] !== required[index])
|
|
1006
|
-
return actual[index] > required[index];
|
|
1007
|
-
}
|
|
1008
|
-
return true;
|
|
1009
|
-
};
|
|
1010
|
-
const supportsMonetaryPolicy = (version) => {
|
|
1011
|
-
const actual = parseProtocolVersion(version);
|
|
1012
|
-
const required = parseProtocolVersion(MONETARY_POLICY_PROTOCOL_VERSION);
|
|
1013
|
-
if (!actual)
|
|
1014
|
-
return false;
|
|
1015
|
-
for (let index = 0; index < required.length; index += 1) {
|
|
1016
|
-
if (actual[index] !== required[index])
|
|
1017
|
-
return actual[index] > required[index];
|
|
1018
|
-
}
|
|
1019
|
-
return true;
|
|
1020
|
-
};
|
|
1021
|
-
const calculateMonetaryPolicy = (totalSupply, targetSupply) => {
|
|
1022
|
-
if (totalSupply < 0n || targetSupply <= 0n)
|
|
1023
|
-
throw new Error('invalid monetary policy supply');
|
|
1024
|
-
const floorSupply = (targetSupply * SUPPLY_FLOOR_BASIS_POINTS) / FEE_BASIS_POINTS;
|
|
1025
|
-
if (totalSupply < floorSupply) {
|
|
1026
|
-
const annualIssuance = (targetSupply * ANNUAL_ISSUANCE_BASIS_POINTS) / FEE_BASIS_POINTS;
|
|
1027
|
-
const scheduled = annualIssuance / BLOCKS_PER_YEAR || 1n;
|
|
1028
|
-
return { subsidy: scheduled < floorSupply - totalSupply ? scheduled : floorSupply - totalSupply, burnBasisPoints: 0n, floorSupply };
|
|
1029
|
-
}
|
|
1030
|
-
return {
|
|
1031
|
-
subsidy: 0n,
|
|
1032
|
-
burnBasisPoints: totalSupply >= targetSupply ? MONETARY_FEE_BURN_BASIS_POINTS : 0n,
|
|
1033
|
-
floorSupply
|
|
1034
|
-
};
|
|
1035
|
-
};
|
|
1036
|
-
const distributeAmount = (amount, addresses, rotation = 0) => {
|
|
1037
|
-
const canonical = [...new Set(addresses)].sort();
|
|
1038
|
-
if (canonical.length === 0)
|
|
1039
|
-
throw new Error('cannot distribute without validators');
|
|
1040
|
-
const count = BigInt(canonical.length);
|
|
1041
|
-
const base = amount / count;
|
|
1042
|
-
const remainder = Number(amount % count);
|
|
1043
|
-
const result = new Map(canonical.map((address) => [address, base]));
|
|
1044
|
-
for (let index = 0; index < remainder; index += 1) {
|
|
1045
|
-
const address = canonical[(rotation + index) % canonical.length];
|
|
1046
|
-
result.set(address, result.get(address) + 1n);
|
|
1047
|
-
}
|
|
1048
|
-
return result;
|
|
1049
|
-
};
|
|
1050
|
-
const feeRotationIndex = (transactionHash, validatorCount) => {
|
|
1051
|
-
let value = 0n;
|
|
1052
|
-
for (const character of transactionHash)
|
|
1053
|
-
value = (value * 31n + BigInt(character.charCodeAt(0))) % 4294967291n;
|
|
1054
|
-
return Number(value % BigInt(validatorCount));
|
|
1055
|
-
};
|
|
1056
|
-
const distributeTransactionFee = (fee, transactionHash, validatorAddresses, burnBasisPoints = 1000n) => {
|
|
1057
|
-
const canonicalValidators = [...new Set(validatorAddresses)].sort();
|
|
1058
|
-
if (canonicalValidators.length === 0)
|
|
1059
|
-
throw new Error('cannot distribute transaction fee without validators');
|
|
1060
|
-
if (fee < 0n)
|
|
1061
|
-
throw new Error('transaction fee cannot be negative');
|
|
1062
|
-
if (burnBasisPoints < 0n || burnBasisPoints > FEE_BASIS_POINTS)
|
|
1063
|
-
throw new Error('invalid fee burn rate');
|
|
1064
|
-
const burned = (fee * burnBasisPoints) / FEE_BASIS_POINTS;
|
|
1065
|
-
const validatorPool = fee - burned;
|
|
1066
|
-
const count = BigInt(canonicalValidators.length);
|
|
1067
|
-
const base = validatorPool / count;
|
|
1068
|
-
const remainder = Number(validatorPool % count);
|
|
1069
|
-
const start = feeRotationIndex(transactionHash, canonicalValidators.length);
|
|
1070
|
-
const validatorFees = new Map(canonicalValidators.map((validator) => [validator, base]));
|
|
1071
|
-
for (let index = 0; index < remainder; index += 1) {
|
|
1072
|
-
const validator = canonicalValidators[(start + index) % canonicalValidators.length];
|
|
1073
|
-
validatorFees.set(validator, validatorFees.get(validator) + 1n);
|
|
1074
|
-
}
|
|
1075
|
-
const payments = [...validatorFees.entries()]
|
|
1076
|
-
.filter(([, amount]) => amount > 0n)
|
|
1077
|
-
.map(([to, amount]) => ({ to, amount }));
|
|
1078
|
-
return { burned, validatorFees, payments };
|
|
1079
|
-
};
|
|
1080
|
-
const calculateFee = async (transaction, format = false) => {
|
|
1081
|
-
transaction = await new TransactionMessage(transaction);
|
|
1082
|
-
const encodedBytes = BigInt(transaction.encoded.length);
|
|
1083
|
-
const units = (encodedBytes + TRANSACTION_FEE_BYTES - 1n) / TRANSACTION_FEE_BYTES;
|
|
1084
|
-
const fee = units * TRANSACTION_FEE_UNIT;
|
|
1085
|
-
return format ? formatUnits(fee.toString()) : fee;
|
|
1086
|
-
};
|
|
1087
|
-
const validateTransactionResourceLimits = async (transaction) => {
|
|
1088
|
-
const message = await new TransactionMessage(transaction);
|
|
1089
|
-
const size = message.encoded.length;
|
|
1090
|
-
if (size > MAX_TRANSACTION_BYTES) {
|
|
1091
|
-
throw new Error(`transaction exceeds ${MAX_TRANSACTION_BYTES} byte protocol limit: ${size}`);
|
|
1092
|
-
}
|
|
1093
|
-
return size;
|
|
1094
|
-
};
|
|
1095
|
-
const validateBlockResourceLimits = async (transactions) => {
|
|
1096
|
-
if (transactions.length > MAX_BLOCK_TRANSACTIONS) {
|
|
1097
|
-
throw new Error(`block exceeds ${MAX_BLOCK_TRANSACTIONS} transaction protocol limit`);
|
|
1098
|
-
}
|
|
1099
|
-
let size = 0;
|
|
1100
|
-
for (const transaction of transactions)
|
|
1101
|
-
size += await validateTransactionResourceLimits(transaction);
|
|
1102
|
-
if (size > MAX_BLOCK_TRANSACTION_BYTES) {
|
|
1103
|
-
throw new Error(`block transactions exceed ${MAX_BLOCK_TRANSACTION_BYTES} byte protocol limit: ${size}`);
|
|
1104
|
-
}
|
|
1105
|
-
return size;
|
|
1106
|
-
};
|
|
1107
69
|
|
|
1108
70
|
class LittlePubSub {
|
|
1109
71
|
subscribers = new Map();
|
|
@@ -1200,7 +162,7 @@ class LittlePubSub {
|
|
|
1200
162
|
}
|
|
1201
163
|
|
|
1202
164
|
const pubsub = new LittlePubSub();
|
|
1203
|
-
const worker = new
|
|
165
|
+
const worker = new BinaryWorker();
|
|
1204
166
|
const contractFactoryMessage = bytecodes.contractFactory;
|
|
1205
167
|
const nativeTokenMessage = bytecodes.nativeToken;
|
|
1206
168
|
const nameServiceMessage = bytecodes.nameService;
|
|
@@ -1218,6 +180,17 @@ let totalBlocks;
|
|
|
1218
180
|
let blocks = [];
|
|
1219
181
|
let contracts = {};
|
|
1220
182
|
let contractDefinitions = {};
|
|
183
|
+
const readCodeCache = new Map();
|
|
184
|
+
let readCodeBytes = 0;
|
|
185
|
+
let readOnly = false;
|
|
186
|
+
let readBaseline;
|
|
187
|
+
const stateFingerprint = value => JSON.stringify(value, (_, item) => {
|
|
188
|
+
if (typeof item === 'bigint')
|
|
189
|
+
return { $bigint: item.toString() };
|
|
190
|
+
if (item && typeof item === 'object' && !Array.isArray(item))
|
|
191
|
+
return Object.fromEntries(Object.keys(item).sort().map(key => [key, item[key]]));
|
|
192
|
+
return item;
|
|
193
|
+
});
|
|
1221
194
|
let activeMeter;
|
|
1222
195
|
let activeTimestamp;
|
|
1223
196
|
let activeCrypto;
|
|
@@ -1237,6 +210,8 @@ const createMessage = (sender = globalThis.peerid, contract) => {
|
|
|
1237
210
|
contract,
|
|
1238
211
|
sender,
|
|
1239
212
|
call: async (targetOrParams, method, params = []) => {
|
|
213
|
+
if (readOnly)
|
|
214
|
+
throw new Error('Read-only contract queries cannot call mutating contracts');
|
|
1240
215
|
const callParams = typeof targetOrParams === 'object'
|
|
1241
216
|
? targetOrParams
|
|
1242
217
|
: { contract: targetOrParams, method, params };
|
|
@@ -1251,6 +226,8 @@ const createMessage = (sender = globalThis.peerid, contract) => {
|
|
|
1251
226
|
}
|
|
1252
227
|
},
|
|
1253
228
|
staticCall: async (target, method, params = []) => {
|
|
229
|
+
if (!readOnly)
|
|
230
|
+
return askFor('staticCall', { snapshot: await _.snapshot(), contract: target, method, params, sender: contract });
|
|
1254
231
|
const previousMessage = globalThis.msg;
|
|
1255
232
|
globalThis.msg = createMessage(contract, target);
|
|
1256
233
|
try {
|
|
@@ -1267,6 +244,8 @@ const createState = async () => ({
|
|
|
1267
244
|
lastBlock
|
|
1268
245
|
});
|
|
1269
246
|
const debug = (message) => {
|
|
247
|
+
if (readOnly)
|
|
248
|
+
return;
|
|
1270
249
|
worker.postMessage({
|
|
1271
250
|
type: 'debug',
|
|
1272
251
|
message
|
|
@@ -1297,7 +276,7 @@ const instantiateContract = async (hash, state) => {
|
|
|
1297
276
|
const definition = contractDefinitions[hash];
|
|
1298
277
|
if (!definition)
|
|
1299
278
|
throw new Error(`missing contract definition for ${hash}`);
|
|
1300
|
-
const params =
|
|
279
|
+
const params = cloneState(definition.constructorParameters);
|
|
1301
280
|
if (state !== undefined)
|
|
1302
281
|
params.push(cloneState(state));
|
|
1303
282
|
globalThis.msg = createMessage(definition.creator, hash);
|
|
@@ -1374,9 +353,16 @@ const respond = (id, value) => {
|
|
|
1374
353
|
id
|
|
1375
354
|
});
|
|
1376
355
|
};
|
|
1377
|
-
const askFor = (question, input) => new Promise((resolve) => {
|
|
356
|
+
const askFor = (question, input) => new Promise((resolve, reject) => {
|
|
1378
357
|
const id = globalThis.crypto.randomUUID();
|
|
1379
|
-
|
|
358
|
+
const onResponse = result => {
|
|
359
|
+
pubsub.unsubscribe(id, onResponse);
|
|
360
|
+
if (result.error)
|
|
361
|
+
reject(new Error(result.error));
|
|
362
|
+
else
|
|
363
|
+
resolve(result.input);
|
|
364
|
+
};
|
|
365
|
+
pubsub.subscribe(id, onResponse);
|
|
1380
366
|
worker.postMessage({
|
|
1381
367
|
type: 'ask',
|
|
1382
368
|
question,
|
|
@@ -1385,7 +371,6 @@ const askFor = (question, input) => new Promise((resolve) => {
|
|
|
1385
371
|
});
|
|
1386
372
|
});
|
|
1387
373
|
const resolveContract = (hash) => askFor('contract', hash);
|
|
1388
|
-
const resolveTransaction = (hash) => askFor('transaction', hash);
|
|
1389
374
|
const runTask = async (id, taskName, input) => {
|
|
1390
375
|
try {
|
|
1391
376
|
const result = await _[taskName](input);
|
|
@@ -1404,39 +389,7 @@ const queueTask = (id, taskName, input) => {
|
|
|
1404
389
|
taskQueue = taskQueue.then(() => runTask(id, taskName, input));
|
|
1405
390
|
};
|
|
1406
391
|
const queueRead = (id, input) => {
|
|
1407
|
-
taskQueue = taskQueue.then(
|
|
1408
|
-
};
|
|
1409
|
-
const _executeTransaction = async (transaction, validators, feesEnabled, burnBasisPoints) => {
|
|
1410
|
-
const hash = await new TransactionMessage(transaction).hash();
|
|
1411
|
-
if (latestTransactions.includes(hash)) {
|
|
1412
|
-
throw new Error(`double transaction found: ${hash}`);
|
|
1413
|
-
}
|
|
1414
|
-
else {
|
|
1415
|
-
latestTransactions.push(hash);
|
|
1416
|
-
const { from, to, method, params, nonce } = transaction;
|
|
1417
|
-
globalThis.msg = createMessage(from, to);
|
|
1418
|
-
globalThis.state = await createState();
|
|
1419
|
-
if (feesEnabled) {
|
|
1420
|
-
const fee = BigInt(await calculateFee(transaction));
|
|
1421
|
-
const { payments, burned } = distributeTransactionFee(fee, hash, validators, burnBasisPoints);
|
|
1422
|
-
await _.collectFee({ from, payments, burned });
|
|
1423
|
-
}
|
|
1424
|
-
await _.execute({
|
|
1425
|
-
contract: to,
|
|
1426
|
-
method,
|
|
1427
|
-
params,
|
|
1428
|
-
executionSeed: hash,
|
|
1429
|
-
executionTimestamp: Number(lastBlock.timestamp ?? transaction.timestamp ?? 0)
|
|
1430
|
-
});
|
|
1431
|
-
worker.postMessage({
|
|
1432
|
-
type: 'transactionLoaded',
|
|
1433
|
-
result: {
|
|
1434
|
-
hash,
|
|
1435
|
-
from,
|
|
1436
|
-
nonce: String(nonce)
|
|
1437
|
-
}
|
|
1438
|
-
});
|
|
1439
|
-
}
|
|
392
|
+
taskQueue = taskQueue.then(() => runTask(id, 'get', input));
|
|
1440
393
|
};
|
|
1441
394
|
const addToWantList = (hash) => {
|
|
1442
395
|
worker.postMessage({
|
|
@@ -1445,12 +398,26 @@ const addToWantList = (hash) => {
|
|
|
1445
398
|
});
|
|
1446
399
|
};
|
|
1447
400
|
const _ = {
|
|
401
|
+
get,
|
|
1448
402
|
runContract: async ({ decoded, hash, encoded }, state) => {
|
|
1449
403
|
const topLevelDeployment = !activeExecution;
|
|
1450
404
|
try {
|
|
1451
405
|
if (topLevelDeployment)
|
|
1452
406
|
beginExecution(`deploy:${hash}`, Number(lastBlock.timestamp ?? 0));
|
|
1453
|
-
const
|
|
407
|
+
const cached = readOnly ? readCodeCache.get(hash) : undefined;
|
|
408
|
+
const source = cached?.source ?? instrumentContractSource(new TextDecoder().decode(decoded.contract));
|
|
409
|
+
if (readOnly && !cached) {
|
|
410
|
+
const size = encoded.byteLength + source.length * 2;
|
|
411
|
+
if (size <= 8 * 1024 * 1024) {
|
|
412
|
+
while (readCodeCache.size && (readCodeCache.size >= 128 || readCodeBytes + size > 8 * 1024 * 1024)) {
|
|
413
|
+
const oldest = readCodeCache.keys().next().value;
|
|
414
|
+
readCodeBytes -= readCodeCache.get(oldest).size;
|
|
415
|
+
readCodeCache.delete(oldest);
|
|
416
|
+
}
|
|
417
|
+
readCodeCache.set(hash, { decoded: cloneState(decoded), encoded: encoded.slice(), source, size });
|
|
418
|
+
readCodeBytes += size;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
1454
421
|
const func = new Function('__lfcMeter', 'Date', 'crypto', source);
|
|
1455
422
|
const Contract = func(meterBridge, dateBridge, cryptoBridge);
|
|
1456
423
|
if (activeExecution && !contractDefinitions[hash])
|
|
@@ -1464,12 +431,14 @@ const _ = {
|
|
|
1464
431
|
debug(`loaded contract: ${hash} size: ${formatBytes(encoded.length)}`);
|
|
1465
432
|
}
|
|
1466
433
|
catch (e) {
|
|
1467
|
-
|
|
434
|
+
if (!readOnly)
|
|
435
|
+
console.log(e);
|
|
1468
436
|
worker.postMessage({
|
|
1469
437
|
type: 'contractError',
|
|
1470
438
|
message: e.message,
|
|
1471
439
|
hash
|
|
1472
440
|
});
|
|
441
|
+
throw e;
|
|
1473
442
|
}
|
|
1474
443
|
finally {
|
|
1475
444
|
if (topLevelDeployment) {
|
|
@@ -1479,6 +448,8 @@ const _ = {
|
|
|
1479
448
|
}
|
|
1480
449
|
},
|
|
1481
450
|
execute: async ({ contract, method, params, sender, executionSeed, executionTimestamp, executionRandomness }) => {
|
|
451
|
+
if (readOnly)
|
|
452
|
+
throw new Error('Read-only worker cannot execute canonical transactions');
|
|
1482
453
|
const topLevel = !activeExecution;
|
|
1483
454
|
try {
|
|
1484
455
|
if (topLevel) {
|
|
@@ -1551,6 +522,8 @@ const _ = {
|
|
|
1551
522
|
}
|
|
1552
523
|
},
|
|
1553
524
|
collectFee: async ({ from, payments, burned = 0n }) => {
|
|
525
|
+
if (readOnly)
|
|
526
|
+
throw new Error('Read-only worker cannot collect fees');
|
|
1554
527
|
burned = BigInt(burned);
|
|
1555
528
|
const seed = `fee:${from}:${JSON.stringify(payments, jsonStringifyBigInt)}:${burned}`;
|
|
1556
529
|
return runAtomicMutation(seed, nativeToken$2, () => {
|
|
@@ -1572,6 +545,8 @@ const _ = {
|
|
|
1572
545
|
});
|
|
1573
546
|
},
|
|
1574
547
|
settleRewards: async ({ rewards }) => {
|
|
548
|
+
if (readOnly)
|
|
549
|
+
throw new Error('Read-only worker cannot mint rewards');
|
|
1575
550
|
const seed = `rewards:${JSON.stringify(rewards, jsonStringifyBigInt)}`;
|
|
1576
551
|
return runAtomicMutation(seed, nativeToken$2, () => {
|
|
1577
552
|
globalThis.msg = createMessage(MONETARY_POLICY_AUTHORITY, nativeToken$2);
|
|
@@ -1586,13 +561,20 @@ const _ = {
|
|
|
1586
561
|
});
|
|
1587
562
|
},
|
|
1588
563
|
init: async (message) => {
|
|
564
|
+
if (readOnly && !message.readOnly)
|
|
565
|
+
throw new Error('Read-only worker cannot become a canonical worker');
|
|
566
|
+
if (message.readOnly) {
|
|
567
|
+
readOnly = true;
|
|
568
|
+
contracts = {};
|
|
569
|
+
contractDefinitions = {};
|
|
570
|
+
activeExecution = undefined;
|
|
571
|
+
activeMeter = undefined;
|
|
572
|
+
activeCrypto = undefined;
|
|
573
|
+
}
|
|
1589
574
|
let { peerid, fromState, state, info } = message;
|
|
1590
|
-
if (
|
|
1591
|
-
|
|
1592
|
-
if (state)
|
|
1593
|
-
state = JSON.parse(state, jsonParseBigInt);
|
|
575
|
+
if (readOnly)
|
|
576
|
+
readBaseline = stateFingerprint(state);
|
|
1594
577
|
globalThis.peerid = peerid;
|
|
1595
|
-
console.log({ fromState, info });
|
|
1596
578
|
nativeCalls = BigInt(info?.nativeCalls ?? 0);
|
|
1597
579
|
nativeMints = BigInt(info?.nativeMints ?? 0);
|
|
1598
580
|
nativeBurns = BigInt(info?.nativeBurns ?? 0);
|
|
@@ -1604,15 +586,24 @@ const _ = {
|
|
|
1604
586
|
totalBlocks = BigInt(info?.totalBlocks ?? 0);
|
|
1605
587
|
if (fromState) {
|
|
1606
588
|
if (message.lastBlock) {
|
|
1607
|
-
lastBlock =
|
|
589
|
+
lastBlock = message.lastBlock;
|
|
1608
590
|
}
|
|
1609
591
|
const setState = async (address, state) => {
|
|
592
|
+
if (readOnly && readCodeCache.has(address)) {
|
|
593
|
+
// Re-evaluate the cached instrumented source, never reuse a live class:
|
|
594
|
+
// static fields and lexical closure variables must not leak between reads.
|
|
595
|
+
const cached = readCodeCache.get(address);
|
|
596
|
+
await _.runContract({ hash: address, decoded: cached.decoded, encoded: cached.encoded }, state);
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
1610
599
|
const contractBytes = await resolveContract(address);
|
|
1611
|
-
if (contractBytes === address) {
|
|
600
|
+
if (!contractBytes || contractBytes === address) {
|
|
1612
601
|
addToWantList(address);
|
|
1613
|
-
|
|
602
|
+
throw new Error(`Checkpoint contract unavailable: ${address}`);
|
|
1614
603
|
}
|
|
1615
604
|
const contract = await new ContractMessage(contractBytes);
|
|
605
|
+
if (await contract.hash() !== address)
|
|
606
|
+
throw new Error(`Checkpoint contract hash mismatch: ${address}`);
|
|
1616
607
|
await _.runContract({ hash: address, decoded: contract.decoded, encoded: contract.encoded }, state);
|
|
1617
608
|
};
|
|
1618
609
|
const entries = Object.entries(state);
|
|
@@ -1646,98 +637,48 @@ const _ = {
|
|
|
1646
637
|
hash: await contractMessage.hash()
|
|
1647
638
|
});
|
|
1648
639
|
}
|
|
1649
|
-
console.log({ blocks: message.blocks });
|
|
1650
|
-
if (message.blocks?.length > 0) {
|
|
1651
|
-
// let pre
|
|
1652
|
-
// try {
|
|
1653
|
-
// const importee = await import('url')
|
|
1654
|
-
// const url = importee.default
|
|
1655
|
-
// if (url) pre = url.fileURLToPath(new URL('.', import.meta.url))
|
|
1656
|
-
// } catch {
|
|
1657
|
-
// // browser env
|
|
1658
|
-
// pre = './'
|
|
1659
|
-
// }
|
|
1660
|
-
// let _worker = await new EasyWorker(pre + 'block-worker.js', {
|
|
1661
|
-
// serialization: 'advanced',
|
|
1662
|
-
// type: 'module'
|
|
1663
|
-
// })
|
|
1664
|
-
// blocks = await _worker.once(message.blocks)
|
|
1665
|
-
// _worker = null
|
|
1666
|
-
// blocks = unique(globalThis.blocks ? globalThis : [], blocks)
|
|
1667
|
-
// for (let i = 0; i < blocks.length; i++) {
|
|
1668
|
-
// }
|
|
1669
|
-
blocks = message.blocks;
|
|
1670
|
-
for (const block of blocks) {
|
|
1671
|
-
// we only revalidate the latest 24 blocks
|
|
1672
|
-
// every 24 blocks a snapshot is taken and stored in state
|
|
1673
|
-
// this means contracts will be restored from this state
|
|
1674
|
-
// this also means devs NEED to make sure the state can be restored
|
|
1675
|
-
// on contract deploy an error will be thrown if state wasn't recoverable
|
|
1676
|
-
if (block.index >= blocks.length - 24) {
|
|
1677
|
-
const transactionCount = blocks[block.index].transactions.length;
|
|
1678
|
-
latestTransactions.splice(-transactionCount, latestTransactions.length);
|
|
1679
|
-
}
|
|
1680
|
-
if (!block.loaded && !fromState) {
|
|
1681
|
-
totalBlocks += 1n;
|
|
1682
|
-
try {
|
|
1683
|
-
const transactions = await Promise.all(block.transactions.map(async (transaction) => {
|
|
1684
|
-
const message = new TransactionMessage(await resolveTransaction(transaction)).decode();
|
|
1685
|
-
if (message === transaction) {
|
|
1686
|
-
throw new Error(`nothing found for ${transaction}`);
|
|
1687
|
-
}
|
|
1688
|
-
return message;
|
|
1689
|
-
}));
|
|
1690
|
-
const validators = block.validators.map(({ address }) => address);
|
|
1691
|
-
transactions.sort((a, b) => {
|
|
1692
|
-
if (a.priority !== b.priority)
|
|
1693
|
-
return a.priority ? -1 : 1;
|
|
1694
|
-
const left = BigInt(a.nonce);
|
|
1695
|
-
const right = BigInt(b.nonce);
|
|
1696
|
-
return left < right ? -1 : left > right ? 1 : 0;
|
|
1697
|
-
});
|
|
1698
|
-
const feesEnabled = supportsTransactionFees(block.protocolVersion);
|
|
1699
|
-
const monetaryPolicyEnabled = supportsMonetaryPolicy(block.protocolVersion);
|
|
1700
|
-
if (monetaryPolicyEnabled)
|
|
1701
|
-
await validateBlockResourceLimits(transactions);
|
|
1702
|
-
const policy = monetaryPolicyEnabled
|
|
1703
|
-
? calculateMonetaryPolicy(BigInt(await get({ contract: nativeToken$2, method: 'totalSupply', params: [] })), BigInt(await get({ contract: nativeToken$2, method: 'targetSupply', params: [] })))
|
|
1704
|
-
: { subsidy: 0n, burnBasisPoints: 1000n };
|
|
1705
|
-
for (const transaction of transactions) {
|
|
1706
|
-
await _executeTransaction(transaction, validators, feesEnabled, policy.burnBasisPoints);
|
|
1707
|
-
}
|
|
1708
|
-
if (monetaryPolicyEnabled && policy.subsidy > 0n) {
|
|
1709
|
-
_.settleRewards({
|
|
1710
|
-
rewards: [...distributeAmount(policy.subsidy, validators, Number(block.index) % validators.length)]
|
|
1711
|
-
});
|
|
1712
|
-
}
|
|
1713
|
-
block.loaded = true;
|
|
1714
|
-
worker.postMessage({
|
|
1715
|
-
type: 'debug',
|
|
1716
|
-
message: `loaded transactions for block: ${block.hash} @${block.index}`
|
|
1717
|
-
});
|
|
1718
|
-
}
|
|
1719
|
-
catch (error) {
|
|
1720
|
-
// just tell chain it's ready so we can get this node sync
|
|
1721
|
-
// when a node connects this node will try to resolve the wantList
|
|
1722
|
-
// this should result in the node beeing sync
|
|
1723
|
-
if (error.message.includes('nothing found for'))
|
|
1724
|
-
worker.postMessage({ type: 'machine-ready', lastBlock });
|
|
1725
|
-
else
|
|
1726
|
-
console.error(error);
|
|
1727
|
-
}
|
|
1728
|
-
}
|
|
1729
|
-
}
|
|
1730
|
-
if (blocks.length > 0) {
|
|
1731
|
-
lastBlock = blocks[blocks.length - 1];
|
|
1732
|
-
}
|
|
1733
|
-
globalThis.blocks = blocks;
|
|
1734
|
-
}
|
|
1735
640
|
}
|
|
1736
|
-
|
|
641
|
+
// Startup only restores a verified checkpoint. Unapplied blocks are executed
|
|
642
|
+
// by Chain's canonical application path, never by a second replay engine.
|
|
643
|
+
blocks = message.blocks ?? [];
|
|
644
|
+
if (!readOnly && (!Array.isArray(blocks) || blocks.length !== Number(lastBlock.index) + 1 ||
|
|
645
|
+
(blocks.length && blocks.at(-1)?.hash !== lastBlock.hash)))
|
|
646
|
+
throw new Error('Checkpoint history does not match tip');
|
|
647
|
+
for (let index = 0; index < blocks.length; index++) {
|
|
648
|
+
if (Number(blocks[index]?.index) !== index ||
|
|
649
|
+
blocks[index].previousHash !== (index ? blocks[index - 1].hash : '0x0'))
|
|
650
|
+
throw new Error('Invalid checkpoint history');
|
|
651
|
+
}
|
|
652
|
+
globalThis.blocks = blocks;
|
|
653
|
+
latestTransactions.splice(0, latestTransactions.length, ...blocks.slice(-24).flatMap(block => block.transactions));
|
|
654
|
+
return true;
|
|
655
|
+
},
|
|
656
|
+
read: async ({ contract, method, params, sender = 'leofcoin:read-only' }) => {
|
|
657
|
+
if (!readOnly)
|
|
658
|
+
throw new Error('Contract queries require a separate read-only worker');
|
|
659
|
+
globalThis.msg = createMessage(sender, contract);
|
|
660
|
+
beginExecution(`read:${contract}:${method}:${JSON.stringify(params, jsonStringifyBigInt)}`);
|
|
661
|
+
try {
|
|
662
|
+
const result = cloneState(await get({ contract, method, params }));
|
|
663
|
+
const snapshot = await _.snapshot();
|
|
664
|
+
if (stateFingerprint(snapshot.states) !== readBaseline)
|
|
665
|
+
throw new Error('Read-only call attempted to change contract state');
|
|
666
|
+
return result;
|
|
667
|
+
}
|
|
668
|
+
finally {
|
|
669
|
+
activeMeter = undefined;
|
|
670
|
+
activeCrypto = undefined;
|
|
671
|
+
globalThis.msg = undefined;
|
|
672
|
+
}
|
|
673
|
+
},
|
|
674
|
+
snapshot: async () => {
|
|
675
|
+
const states = {};
|
|
676
|
+
for (const address of Object.keys(contracts))
|
|
677
|
+
states[address] = cloneState(await get({ contract: address, method: 'state', params: [] }));
|
|
678
|
+
return { lastBlock: cloneState(lastBlock), states, info: { ...snapshotCounters(), totalBlocks } };
|
|
1737
679
|
},
|
|
1738
680
|
addLoadedBlock: (block) => {
|
|
1739
|
-
const size = formatBytes(block.length);
|
|
1740
|
-
block = JSON.parse(block, jsonParseBigInt);
|
|
681
|
+
const size = formatBytes(encodeValue(block).length);
|
|
1741
682
|
const index = Number(block.index);
|
|
1742
683
|
const tipIndex = Number(lastBlock.index);
|
|
1743
684
|
if (!['number', 'bigint'].includes(typeof block.index) ||
|
|
@@ -1770,9 +711,9 @@ const _ = {
|
|
|
1770
711
|
// todo validate here and deprecate addLoadedBlock
|
|
1771
712
|
}
|
|
1772
713
|
};
|
|
1773
|
-
worker.onmessage(({ id, type, input }) => {
|
|
714
|
+
worker.onmessage(({ id, type, input, error }) => {
|
|
1774
715
|
if (pubsub.hasSubscribers(id)) {
|
|
1775
|
-
pubsub.publish(id, input);
|
|
716
|
+
pubsub.publish(id, { input, error });
|
|
1776
717
|
return;
|
|
1777
718
|
}
|
|
1778
719
|
switch (type) {
|
|
@@ -1794,6 +735,9 @@ worker.onmessage(({ id, type, input }) => {
|
|
|
1794
735
|
case 'settleRewards':
|
|
1795
736
|
queueTask(id, 'settleRewards', input);
|
|
1796
737
|
break;
|
|
738
|
+
case 'snapshot':
|
|
739
|
+
queueTask(id, 'snapshot', input);
|
|
740
|
+
break;
|
|
1797
741
|
case 'contracts':
|
|
1798
742
|
respond(id, contracts);
|
|
1799
743
|
break;
|
|
@@ -1818,6 +762,9 @@ worker.onmessage(({ id, type, input }) => {
|
|
|
1818
762
|
case 'get':
|
|
1819
763
|
queueRead(id, input);
|
|
1820
764
|
break;
|
|
765
|
+
case 'read':
|
|
766
|
+
queueTask(id, 'read', input);
|
|
767
|
+
break;
|
|
1821
768
|
case 'totalContracts':
|
|
1822
769
|
respond(id, Object.keys(contracts).length);
|
|
1823
770
|
break;
|