@leofcoin/chain 1.10.21 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +95 -0
- package/exports/browser/beacon-wire.js +2 -2
- package/exports/browser/{browser-CCfR9KOM-BGMMnVsR.js → browser-CCfR9KOM-CNWKLusu.js} +3 -3
- package/exports/browser/{browser-crypto-CH0ua22L.js → browser-crypto-B_UJguhk.js} +453 -35
- package/exports/browser/chain.js +1275 -996
- package/exports/browser/client-DbZBfpG6-C1cXgvfr.js +5943 -0
- package/exports/browser/{connection-monitor-D-krNiRH.js → connection-monitor-BzbeYGEt.js} +153 -24
- package/exports/browser/{index-dTQVgkpf-DOL2rIjp.js → index-dTQVgkpf-CkoAiRNX.js} +3 -3
- package/exports/browser/{index-DCbLvMKL.js → index-phv5KvaE.js} +238 -234
- package/exports/browser/{messages-DCePyqKC-BSvJxDWZ.js → messages-DZYCxoZI-B472zldo.js} +3 -3
- package/exports/browser/{node-browser-Ha4Lvntj.js → node-browser-BmyPBkL5.js} +55 -11
- package/exports/browser/node-browser.js +3 -3
- package/exports/browser/workers/block-worker.js +8 -9
- package/exports/browser/workers/machine-worker.js +141 -1195
- package/exports/{workers/worker-BDTWOCzS-COrAszCt.js → browser/workers/proposal.proto-8zgMfutf-B3So_tnS.js} +910 -398
- package/exports/chain.js +296 -1078
- package/exports/connection-monitor-BdFLRh-J.js +465 -0
- package/exports/connection-monitor.js +2 -324
- package/exports/{constants-Dy9i9S_o.js → constants-BQ6f-_OT.js} +1 -1
- package/exports/hash-format-state.js +3 -3
- package/exports/machine.js +550 -0
- package/exports/node.js +35 -2
- package/exports/state-checkpoint-BiQ1EXzo.js +110 -0
- package/exports/state-checkpoint.js +3 -0
- package/exports/workers/block-worker.js +8 -9
- package/exports/workers/machine-worker.js +141 -1195
- package/exports/{browser/workers/worker-BDTWOCzS-COrAszCt.js → workers/proposal.proto-8zgMfutf-B3So_tnS.js} +910 -398
- package/package.json +9 -7
- package/exports/browser/client-DKKzPSlb-C_1ug6ux.js +0 -2401
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { B as BinaryWorker, c as encodeValue, j as jsonStringifyBigInt$1, a as BinaryFormat, f as proto } from './proposal.proto-8zgMfutf-B3So_tnS.js';
|
|
2
2
|
|
|
3
3
|
// This file was generated. Do not modify manually!
|
|
4
4
|
var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 31, 4, 33, 15, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 7, 0, 259, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 481, 1, 61, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 12, 2, 9, 1, 3, 0, 33, 1, 1357, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
|
|
@@ -265,14 +265,14 @@ var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;
|
|
|
265
265
|
|
|
266
266
|
var ref = Object.prototype;
|
|
267
267
|
var hasOwnProperty = ref.hasOwnProperty;
|
|
268
|
-
var toString
|
|
268
|
+
var toString = ref.toString;
|
|
269
269
|
|
|
270
270
|
var hasOwn = Object.hasOwn || (function (obj, propName) { return (
|
|
271
271
|
hasOwnProperty.call(obj, propName)
|
|
272
272
|
); });
|
|
273
273
|
|
|
274
274
|
var isArray = Array.isArray || (function (obj) { return (
|
|
275
|
-
toString
|
|
275
|
+
toString.call(obj) === "[object Array]"
|
|
276
276
|
); });
|
|
277
277
|
|
|
278
278
|
var regexpCache = Object.create(null);
|
|
@@ -6291,11 +6291,11 @@ pp.readWord = function() {
|
|
|
6291
6291
|
// [ghbt]: https://github.com/acornjs/acorn/issues
|
|
6292
6292
|
|
|
6293
6293
|
|
|
6294
|
-
var version
|
|
6294
|
+
var version = "8.19.0";
|
|
6295
6295
|
|
|
6296
6296
|
Parser.acorn = {
|
|
6297
6297
|
Parser: Parser,
|
|
6298
|
-
version: version
|
|
6298
|
+
version: version,
|
|
6299
6299
|
defaultOptions: defaultOptions,
|
|
6300
6300
|
Position: Position,
|
|
6301
6301
|
SourceLocation: SourceLocation,
|
|
@@ -7111,937 +7111,19 @@ const createCryptoBridge = (resolve) => Object.freeze({
|
|
|
7111
7111
|
}
|
|
7112
7112
|
});
|
|
7113
7113
|
|
|
7114
|
-
class ContractMessage extends
|
|
7114
|
+
class ContractMessage extends BinaryFormat {
|
|
7115
7115
|
get messageName() {
|
|
7116
7116
|
return 'ContractMessage';
|
|
7117
7117
|
}
|
|
7118
7118
|
constructor(buffer) {
|
|
7119
7119
|
if (buffer instanceof ContractMessage)
|
|
7120
7120
|
return buffer;
|
|
7121
|
-
|
|
7121
|
+
if (buffer && typeof buffer === 'object' && !(buffer instanceof Uint8Array) && typeof buffer.contract === 'string')
|
|
7122
|
+
buffer = { ...buffer, contract: new TextEncoder().encode(buffer.contract) };
|
|
7123
|
+
super(buffer, proto, { name: 'contract-message' });
|
|
7122
7124
|
}
|
|
7123
7125
|
}
|
|
7124
7126
|
|
|
7125
|
-
class TransactionMessage extends FormatInterface {
|
|
7126
|
-
get messageName() {
|
|
7127
|
-
return 'TransactionMessage';
|
|
7128
|
-
}
|
|
7129
|
-
constructor(buffer) {
|
|
7130
|
-
if (buffer instanceof TransactionMessage)
|
|
7131
|
-
return buffer;
|
|
7132
|
-
const name = 'transaction-message';
|
|
7133
|
-
super(buffer, proto, { name });
|
|
7134
|
-
}
|
|
7135
|
-
beforeHashing(decoded) {
|
|
7136
|
-
decoded = super.beforeHashing(decoded);
|
|
7137
|
-
delete decoded.signature;
|
|
7138
|
-
delete decoded.priority;
|
|
7139
|
-
delete decoded.dependsOn;
|
|
7140
|
-
return decoded;
|
|
7141
|
-
}
|
|
7142
|
-
}
|
|
7143
|
-
|
|
7144
|
-
/* Do NOT modify this file; see /src.ts/_admin/update-version.ts */
|
|
7145
|
-
/**
|
|
7146
|
-
* The current version of Ethers.
|
|
7147
|
-
*/
|
|
7148
|
-
const version = "6.17.0";
|
|
7149
|
-
|
|
7150
|
-
/**
|
|
7151
|
-
* Property helper functions.
|
|
7152
|
-
*
|
|
7153
|
-
* @_subsection api/utils:Properties [about-properties]
|
|
7154
|
-
*/
|
|
7155
|
-
/**
|
|
7156
|
-
* Assigns the %%values%% to %%target%% as read-only values.
|
|
7157
|
-
*
|
|
7158
|
-
* It %%types%% is specified, the values are checked.
|
|
7159
|
-
*/
|
|
7160
|
-
function defineProperties(target, values, types) {
|
|
7161
|
-
for (let key in values) {
|
|
7162
|
-
let value = values[key];
|
|
7163
|
-
Object.defineProperty(target, key, { enumerable: true, value, writable: false });
|
|
7164
|
-
}
|
|
7165
|
-
}
|
|
7166
|
-
|
|
7167
|
-
/**
|
|
7168
|
-
* All errors in ethers include properties to ensure they are both
|
|
7169
|
-
* human-readable (i.e. ``.message``) and machine-readable (i.e. ``.code``).
|
|
7170
|
-
*
|
|
7171
|
-
* The [[isError]] function can be used to check the error ``code`` and
|
|
7172
|
-
* provide a type guard for the properties present on that error interface.
|
|
7173
|
-
*
|
|
7174
|
-
* @_section: api/utils/errors:Errors [about-errors]
|
|
7175
|
-
*/
|
|
7176
|
-
function stringify(value, seen) {
|
|
7177
|
-
if (value == null) {
|
|
7178
|
-
return "null";
|
|
7179
|
-
}
|
|
7180
|
-
if (seen == null) {
|
|
7181
|
-
seen = new Set();
|
|
7182
|
-
}
|
|
7183
|
-
if (typeof (value) === "object") {
|
|
7184
|
-
if (seen.has(value)) {
|
|
7185
|
-
return "[Circular]";
|
|
7186
|
-
}
|
|
7187
|
-
seen.add(value);
|
|
7188
|
-
}
|
|
7189
|
-
if (Array.isArray(value)) {
|
|
7190
|
-
return "[ " + (value.map((v) => stringify(v, seen))).join(", ") + " ]";
|
|
7191
|
-
}
|
|
7192
|
-
if (value instanceof Uint8Array) {
|
|
7193
|
-
const HEX = "0123456789abcdef";
|
|
7194
|
-
let result = "0x";
|
|
7195
|
-
for (let i = 0; i < value.length; i++) {
|
|
7196
|
-
result += HEX[value[i] >> 4];
|
|
7197
|
-
result += HEX[value[i] & 0xf];
|
|
7198
|
-
}
|
|
7199
|
-
return result;
|
|
7200
|
-
}
|
|
7201
|
-
if (typeof (value) === "object" && typeof (value.toJSON) === "function") {
|
|
7202
|
-
return stringify(value.toJSON(), seen);
|
|
7203
|
-
}
|
|
7204
|
-
switch (typeof (value)) {
|
|
7205
|
-
case "boolean":
|
|
7206
|
-
case "number":
|
|
7207
|
-
case "symbol":
|
|
7208
|
-
return value.toString();
|
|
7209
|
-
case "bigint":
|
|
7210
|
-
return BigInt(value).toString();
|
|
7211
|
-
case "string":
|
|
7212
|
-
return JSON.stringify(value);
|
|
7213
|
-
case "object": {
|
|
7214
|
-
const keys = Object.keys(value);
|
|
7215
|
-
keys.sort();
|
|
7216
|
-
return "{ " + keys.map((k) => `${stringify(k, seen)}: ${stringify(value[k], seen)}`).join(", ") + " }";
|
|
7217
|
-
}
|
|
7218
|
-
}
|
|
7219
|
-
return `[ COULD NOT SERIALIZE ]`;
|
|
7220
|
-
}
|
|
7221
|
-
/**
|
|
7222
|
-
* Returns a new Error configured to the format ethers emits errors, with
|
|
7223
|
-
* the %%message%%, [[api:ErrorCode]] %%code%% and additional properties
|
|
7224
|
-
* for the corresponding EthersError.
|
|
7225
|
-
*
|
|
7226
|
-
* Each error in ethers includes the version of ethers, a
|
|
7227
|
-
* machine-readable [[ErrorCode]], and depending on %%code%%, additional
|
|
7228
|
-
* required properties. The error message will also include the %%message%%,
|
|
7229
|
-
* ethers version, %%code%% and all additional properties, serialized.
|
|
7230
|
-
*/
|
|
7231
|
-
function makeError(message, code, info) {
|
|
7232
|
-
let shortMessage = message;
|
|
7233
|
-
{
|
|
7234
|
-
const details = [];
|
|
7235
|
-
if (info) {
|
|
7236
|
-
if ("message" in info || "code" in info || "name" in info) {
|
|
7237
|
-
throw new Error(`value will overwrite populated values: ${stringify(info)}`);
|
|
7238
|
-
}
|
|
7239
|
-
for (const key in info) {
|
|
7240
|
-
if (key === "shortMessage") {
|
|
7241
|
-
continue;
|
|
7242
|
-
}
|
|
7243
|
-
const value = (info[key]);
|
|
7244
|
-
// try {
|
|
7245
|
-
details.push(key + "=" + stringify(value));
|
|
7246
|
-
// } catch (error: any) {
|
|
7247
|
-
// console.log("MMM", error.message);
|
|
7248
|
-
// details.push(key + "=[could not serialize object]");
|
|
7249
|
-
// }
|
|
7250
|
-
}
|
|
7251
|
-
}
|
|
7252
|
-
details.push(`code=${code}`);
|
|
7253
|
-
details.push(`version=${version}`);
|
|
7254
|
-
if (details.length) {
|
|
7255
|
-
message += " (" + details.join(", ") + ")";
|
|
7256
|
-
}
|
|
7257
|
-
}
|
|
7258
|
-
let error;
|
|
7259
|
-
switch (code) {
|
|
7260
|
-
case "INVALID_ARGUMENT":
|
|
7261
|
-
error = new TypeError(message);
|
|
7262
|
-
break;
|
|
7263
|
-
case "NUMERIC_FAULT":
|
|
7264
|
-
case "BUFFER_OVERRUN":
|
|
7265
|
-
error = new RangeError(message);
|
|
7266
|
-
break;
|
|
7267
|
-
default:
|
|
7268
|
-
error = new Error(message);
|
|
7269
|
-
}
|
|
7270
|
-
defineProperties(error, { code });
|
|
7271
|
-
if (info) {
|
|
7272
|
-
Object.assign(error, info);
|
|
7273
|
-
}
|
|
7274
|
-
if (error.shortMessage == null) {
|
|
7275
|
-
defineProperties(error, { shortMessage });
|
|
7276
|
-
}
|
|
7277
|
-
return error;
|
|
7278
|
-
}
|
|
7279
|
-
/**
|
|
7280
|
-
* Throws an EthersError with %%message%%, %%code%% and additional error
|
|
7281
|
-
* %%info%% when %%check%% is falsish..
|
|
7282
|
-
*
|
|
7283
|
-
* @see [[api:makeError]]
|
|
7284
|
-
*/
|
|
7285
|
-
function assert(check, message, code, info) {
|
|
7286
|
-
if (!check) {
|
|
7287
|
-
throw makeError(message, code, info);
|
|
7288
|
-
}
|
|
7289
|
-
}
|
|
7290
|
-
/**
|
|
7291
|
-
* A simple helper to simply ensuring provided arguments match expected
|
|
7292
|
-
* constraints, throwing if not.
|
|
7293
|
-
*
|
|
7294
|
-
* In TypeScript environments, the %%check%% has been asserted true, so
|
|
7295
|
-
* any further code does not need additional compile-time checks.
|
|
7296
|
-
*/
|
|
7297
|
-
function assertArgument(check, message, name, value) {
|
|
7298
|
-
assert(check, message, "INVALID_ARGUMENT", { argument: name, value: value });
|
|
7299
|
-
}
|
|
7300
|
-
["NFD", "NFC", "NFKD", "NFKC"].reduce((accum, form) => {
|
|
7301
|
-
try {
|
|
7302
|
-
// General test for normalize
|
|
7303
|
-
/* c8 ignore start */
|
|
7304
|
-
if ("test".normalize(form) !== "test") {
|
|
7305
|
-
throw new Error("bad");
|
|
7306
|
-
}
|
|
7307
|
-
;
|
|
7308
|
-
/* c8 ignore stop */
|
|
7309
|
-
if (form === "NFD") {
|
|
7310
|
-
const check = String.fromCharCode(0xe9).normalize("NFD");
|
|
7311
|
-
const expected = String.fromCharCode(0x65, 0x0301);
|
|
7312
|
-
/* c8 ignore start */
|
|
7313
|
-
if (check !== expected) {
|
|
7314
|
-
throw new Error("broken");
|
|
7315
|
-
}
|
|
7316
|
-
/* c8 ignore stop */
|
|
7317
|
-
}
|
|
7318
|
-
accum.push(form);
|
|
7319
|
-
}
|
|
7320
|
-
catch (error) { }
|
|
7321
|
-
return accum;
|
|
7322
|
-
}, []);
|
|
7323
|
-
/**
|
|
7324
|
-
* Many classes use file-scoped values to guard the constructor,
|
|
7325
|
-
* making it effectively private. This facilitates that pattern
|
|
7326
|
-
* by ensuring the %%givenGaurd%% matches the file-scoped %%guard%%,
|
|
7327
|
-
* throwing if not, indicating the %%className%% if provided.
|
|
7328
|
-
*/
|
|
7329
|
-
function assertPrivate(givenGuard, guard, className) {
|
|
7330
|
-
if (givenGuard !== guard) {
|
|
7331
|
-
let method = className, operation = "new";
|
|
7332
|
-
{
|
|
7333
|
-
method += ".";
|
|
7334
|
-
operation += " " + className;
|
|
7335
|
-
}
|
|
7336
|
-
assert(false, `private constructor; use ${method}from* methods`, "UNSUPPORTED_OPERATION", {
|
|
7337
|
-
operation
|
|
7338
|
-
});
|
|
7339
|
-
}
|
|
7340
|
-
}
|
|
7341
|
-
|
|
7342
|
-
/**
|
|
7343
|
-
* Some data helpers.
|
|
7344
|
-
*
|
|
7345
|
-
*
|
|
7346
|
-
* @_subsection api/utils:Data Helpers [about-data]
|
|
7347
|
-
*/
|
|
7348
|
-
function _getBytes(value, name, copy) {
|
|
7349
|
-
if (value instanceof Uint8Array) {
|
|
7350
|
-
return value;
|
|
7351
|
-
}
|
|
7352
|
-
if (typeof (value) === "string" && (value.length % 2) === 0 &&
|
|
7353
|
-
value.match(/^0x[0-9a-f]*$/i)) {
|
|
7354
|
-
const result = new Uint8Array((value.length - 2) / 2);
|
|
7355
|
-
let offset = 2;
|
|
7356
|
-
for (let i = 0; i < result.length; i++) {
|
|
7357
|
-
result[i] = parseInt(value.substring(offset, offset + 2), 16);
|
|
7358
|
-
offset += 2;
|
|
7359
|
-
}
|
|
7360
|
-
return result;
|
|
7361
|
-
}
|
|
7362
|
-
assertArgument(false, "invalid BytesLike value", name, value);
|
|
7363
|
-
}
|
|
7364
|
-
/**
|
|
7365
|
-
* Get a typed Uint8Array for %%value%%. If already a Uint8Array
|
|
7366
|
-
* the original %%value%% is returned; if a copy is required use
|
|
7367
|
-
* [[getBytesCopy]].
|
|
7368
|
-
*
|
|
7369
|
-
* @see: getBytesCopy
|
|
7370
|
-
*/
|
|
7371
|
-
function getBytes(value, name) {
|
|
7372
|
-
return _getBytes(value, name);
|
|
7373
|
-
}
|
|
7374
|
-
|
|
7375
|
-
/**
|
|
7376
|
-
* Some mathematic operations.
|
|
7377
|
-
*
|
|
7378
|
-
* @_subsection: api/utils:Math Helpers [about-maths]
|
|
7379
|
-
*/
|
|
7380
|
-
const BN_0$1 = BigInt(0);
|
|
7381
|
-
const BN_1$1 = BigInt(1);
|
|
7382
|
-
//const BN_Max256 = (BN_1 << BigInt(256)) - BN_1;
|
|
7383
|
-
// IEEE 754 support 53-bits of mantissa
|
|
7384
|
-
const maxValue = 0x1fffffffffffff;
|
|
7385
|
-
/**
|
|
7386
|
-
* Convert %%value%% from a twos-compliment representation of %%width%%
|
|
7387
|
-
* bits to its value.
|
|
7388
|
-
*
|
|
7389
|
-
* If the highest bit is ``1``, the result will be negative.
|
|
7390
|
-
*/
|
|
7391
|
-
function fromTwos(_value, _width) {
|
|
7392
|
-
const value = getUint(_value, "value");
|
|
7393
|
-
const width = BigInt(getNumber(_width, "width"));
|
|
7394
|
-
assert((value >> width) === BN_0$1, "overflow", "NUMERIC_FAULT", {
|
|
7395
|
-
operation: "fromTwos", fault: "overflow", value: _value
|
|
7396
|
-
});
|
|
7397
|
-
// Top bit set; treat as a negative value
|
|
7398
|
-
if (value >> (width - BN_1$1)) {
|
|
7399
|
-
const mask = (BN_1$1 << width) - BN_1$1;
|
|
7400
|
-
return -(((~value) & mask) + BN_1$1);
|
|
7401
|
-
}
|
|
7402
|
-
return value;
|
|
7403
|
-
}
|
|
7404
|
-
/**
|
|
7405
|
-
* Mask %%value%% with a bitmask of %%bits%% ones.
|
|
7406
|
-
*/
|
|
7407
|
-
function mask(_value, _bits) {
|
|
7408
|
-
const value = getUint(_value, "value");
|
|
7409
|
-
const bits = BigInt(getNumber(_bits, "bits"));
|
|
7410
|
-
return value & ((BN_1$1 << bits) - BN_1$1);
|
|
7411
|
-
}
|
|
7412
|
-
/**
|
|
7413
|
-
* Gets a BigInt from %%value%%. If it is an invalid value for
|
|
7414
|
-
* a BigInt, then an ArgumentError will be thrown for %%name%%.
|
|
7415
|
-
*/
|
|
7416
|
-
function getBigInt(value, name) {
|
|
7417
|
-
switch (typeof (value)) {
|
|
7418
|
-
case "bigint": return value;
|
|
7419
|
-
case "number":
|
|
7420
|
-
assertArgument(Number.isInteger(value), "underflow", name || "value", value);
|
|
7421
|
-
assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value);
|
|
7422
|
-
return BigInt(value);
|
|
7423
|
-
case "string":
|
|
7424
|
-
try {
|
|
7425
|
-
if (value === "") {
|
|
7426
|
-
throw new Error("empty string");
|
|
7427
|
-
}
|
|
7428
|
-
if (value[0] === "-" && value[1] !== "-") {
|
|
7429
|
-
return -BigInt(value.substring(1));
|
|
7430
|
-
}
|
|
7431
|
-
return BigInt(value);
|
|
7432
|
-
}
|
|
7433
|
-
catch (e) {
|
|
7434
|
-
assertArgument(false, `invalid BigNumberish string: ${e.message}`, name || "value", value);
|
|
7435
|
-
}
|
|
7436
|
-
}
|
|
7437
|
-
assertArgument(false, "invalid BigNumberish value", name || "value", value);
|
|
7438
|
-
}
|
|
7439
|
-
/**
|
|
7440
|
-
* Returns %%value%% as a bigint, validating it is valid as a bigint
|
|
7441
|
-
* value and that it is positive.
|
|
7442
|
-
*/
|
|
7443
|
-
function getUint(value, name) {
|
|
7444
|
-
const result = getBigInt(value, name);
|
|
7445
|
-
assert(result >= BN_0$1, "unsigned value cannot be negative", "NUMERIC_FAULT", {
|
|
7446
|
-
fault: "overflow", operation: "getUint", value
|
|
7447
|
-
});
|
|
7448
|
-
return result;
|
|
7449
|
-
}
|
|
7450
|
-
const Nibbles = "0123456789abcdef";
|
|
7451
|
-
/*
|
|
7452
|
-
* Converts %%value%% to a BigInt. If %%value%% is a Uint8Array, it
|
|
7453
|
-
* is treated as Big Endian data.
|
|
7454
|
-
*/
|
|
7455
|
-
function toBigInt(value) {
|
|
7456
|
-
if (value instanceof Uint8Array) {
|
|
7457
|
-
let result = "0x0";
|
|
7458
|
-
for (const v of value) {
|
|
7459
|
-
result += Nibbles[v >> 4];
|
|
7460
|
-
result += Nibbles[v & 0x0f];
|
|
7461
|
-
}
|
|
7462
|
-
return BigInt(result);
|
|
7463
|
-
}
|
|
7464
|
-
return getBigInt(value);
|
|
7465
|
-
}
|
|
7466
|
-
/**
|
|
7467
|
-
* Gets a //number// from %%value%%. If it is an invalid value for
|
|
7468
|
-
* a //number//, then an ArgumentError will be thrown for %%name%%.
|
|
7469
|
-
*/
|
|
7470
|
-
function getNumber(value, name) {
|
|
7471
|
-
switch (typeof (value)) {
|
|
7472
|
-
case "bigint":
|
|
7473
|
-
assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value);
|
|
7474
|
-
return Number(value);
|
|
7475
|
-
case "number":
|
|
7476
|
-
assertArgument(Number.isInteger(value), "underflow", name || "value", value);
|
|
7477
|
-
assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value);
|
|
7478
|
-
return value;
|
|
7479
|
-
case "string":
|
|
7480
|
-
try {
|
|
7481
|
-
if (value === "") {
|
|
7482
|
-
throw new Error("empty string");
|
|
7483
|
-
}
|
|
7484
|
-
return getNumber(BigInt(value), name);
|
|
7485
|
-
}
|
|
7486
|
-
catch (e) {
|
|
7487
|
-
assertArgument(false, `invalid numeric string: ${e.message}`, name || "value", value);
|
|
7488
|
-
}
|
|
7489
|
-
}
|
|
7490
|
-
assertArgument(false, "invalid numeric value", name || "value", value);
|
|
7491
|
-
}
|
|
7492
|
-
|
|
7493
|
-
/**
|
|
7494
|
-
* The **FixedNumber** class permits using values with decimal places,
|
|
7495
|
-
* using fixed-pont math.
|
|
7496
|
-
*
|
|
7497
|
-
* Fixed-point math is still based on integers under-the-hood, but uses an
|
|
7498
|
-
* internal offset to store fractional components below, and each operation
|
|
7499
|
-
* corrects for this after each operation.
|
|
7500
|
-
*
|
|
7501
|
-
* @_section: api/utils/fixed-point-math:Fixed-Point Maths [about-fixed-point-math]
|
|
7502
|
-
*/
|
|
7503
|
-
const BN_N1 = BigInt(-1);
|
|
7504
|
-
const BN_0 = BigInt(0);
|
|
7505
|
-
const BN_1 = BigInt(1);
|
|
7506
|
-
const BN_5 = BigInt(5);
|
|
7507
|
-
const _guard = {};
|
|
7508
|
-
// Constant to pull zeros from for multipliers
|
|
7509
|
-
let Zeros = "0000";
|
|
7510
|
-
while (Zeros.length < 80) {
|
|
7511
|
-
Zeros += Zeros;
|
|
7512
|
-
}
|
|
7513
|
-
// Returns a string "1" followed by decimal "0"s
|
|
7514
|
-
function getTens(decimals) {
|
|
7515
|
-
let result = Zeros;
|
|
7516
|
-
while (result.length < decimals) {
|
|
7517
|
-
result += result;
|
|
7518
|
-
}
|
|
7519
|
-
return BigInt("1" + result.substring(0, decimals));
|
|
7520
|
-
}
|
|
7521
|
-
function checkValue(val, format, safeOp) {
|
|
7522
|
-
const width = BigInt(format.width);
|
|
7523
|
-
if (format.signed) {
|
|
7524
|
-
const limit = (BN_1 << (width - BN_1));
|
|
7525
|
-
assert(safeOp == null || (val >= -limit && val < limit), "overflow", "NUMERIC_FAULT", {
|
|
7526
|
-
operation: safeOp, fault: "overflow", value: val
|
|
7527
|
-
});
|
|
7528
|
-
if (val > BN_0) {
|
|
7529
|
-
val = fromTwos(mask(val, width), width);
|
|
7530
|
-
}
|
|
7531
|
-
else {
|
|
7532
|
-
val = -fromTwos(mask(-val, width), width);
|
|
7533
|
-
}
|
|
7534
|
-
}
|
|
7535
|
-
else {
|
|
7536
|
-
const limit = (BN_1 << width);
|
|
7537
|
-
assert(safeOp == null || (val >= 0 && val < limit), "overflow", "NUMERIC_FAULT", {
|
|
7538
|
-
operation: safeOp, fault: "overflow", value: val
|
|
7539
|
-
});
|
|
7540
|
-
val = (((val % limit) + limit) % limit) & (limit - BN_1);
|
|
7541
|
-
}
|
|
7542
|
-
return val;
|
|
7543
|
-
}
|
|
7544
|
-
function getFormat(value) {
|
|
7545
|
-
if (typeof (value) === "number") {
|
|
7546
|
-
value = `fixed128x${value}`;
|
|
7547
|
-
}
|
|
7548
|
-
let signed = true;
|
|
7549
|
-
let width = 128;
|
|
7550
|
-
let decimals = 18;
|
|
7551
|
-
if (typeof (value) === "string") {
|
|
7552
|
-
// Parse the format string
|
|
7553
|
-
if (value === "fixed") ;
|
|
7554
|
-
else if (value === "ufixed") {
|
|
7555
|
-
signed = false;
|
|
7556
|
-
}
|
|
7557
|
-
else {
|
|
7558
|
-
const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);
|
|
7559
|
-
assertArgument(match, "invalid fixed format", "format", value);
|
|
7560
|
-
signed = (match[1] !== "u");
|
|
7561
|
-
width = parseInt(match[2]);
|
|
7562
|
-
decimals = parseInt(match[3]);
|
|
7563
|
-
}
|
|
7564
|
-
}
|
|
7565
|
-
else if (value) {
|
|
7566
|
-
// Extract the values from the object
|
|
7567
|
-
const v = value;
|
|
7568
|
-
const check = (key, type, defaultValue) => {
|
|
7569
|
-
if (v[key] == null) {
|
|
7570
|
-
return defaultValue;
|
|
7571
|
-
}
|
|
7572
|
-
assertArgument(typeof (v[key]) === type, "invalid fixed format (" + key + " not " + type + ")", "format." + key, v[key]);
|
|
7573
|
-
return v[key];
|
|
7574
|
-
};
|
|
7575
|
-
signed = check("signed", "boolean", signed);
|
|
7576
|
-
width = check("width", "number", width);
|
|
7577
|
-
decimals = check("decimals", "number", decimals);
|
|
7578
|
-
}
|
|
7579
|
-
assertArgument((width % 8) === 0, "invalid FixedNumber width (not byte aligned)", "format.width", width);
|
|
7580
|
-
assertArgument(decimals <= 80, "invalid FixedNumber decimals (too large)", "format.decimals", decimals);
|
|
7581
|
-
const name = (signed ? "" : "u") + "fixed" + String(width) + "x" + String(decimals);
|
|
7582
|
-
return { signed, width, decimals, name };
|
|
7583
|
-
}
|
|
7584
|
-
function toString(val, decimals) {
|
|
7585
|
-
let negative = "";
|
|
7586
|
-
if (val < BN_0) {
|
|
7587
|
-
negative = "-";
|
|
7588
|
-
val *= BN_N1;
|
|
7589
|
-
}
|
|
7590
|
-
let str = val.toString();
|
|
7591
|
-
// No decimal point for whole values
|
|
7592
|
-
if (decimals === 0) {
|
|
7593
|
-
return (negative + str);
|
|
7594
|
-
}
|
|
7595
|
-
// Pad out to the whole component (including a whole digit)
|
|
7596
|
-
while (str.length <= decimals) {
|
|
7597
|
-
str = Zeros + str;
|
|
7598
|
-
}
|
|
7599
|
-
// Insert the decimal point
|
|
7600
|
-
const index = str.length - decimals;
|
|
7601
|
-
str = str.substring(0, index) + "." + str.substring(index);
|
|
7602
|
-
// Trim the whole component (leaving at least one 0)
|
|
7603
|
-
while (str[0] === "0" && str[1] !== ".") {
|
|
7604
|
-
str = str.substring(1);
|
|
7605
|
-
}
|
|
7606
|
-
// Trim the decimal component (leaving at least one 0)
|
|
7607
|
-
while (str[str.length - 1] === "0" && str[str.length - 2] !== ".") {
|
|
7608
|
-
str = str.substring(0, str.length - 1);
|
|
7609
|
-
}
|
|
7610
|
-
return (negative + str);
|
|
7611
|
-
}
|
|
7612
|
-
/**
|
|
7613
|
-
* A FixedNumber represents a value over its [[FixedFormat]]
|
|
7614
|
-
* arithmetic field.
|
|
7615
|
-
*
|
|
7616
|
-
* A FixedNumber can be used to perform math, losslessly, on
|
|
7617
|
-
* values which have decmial places.
|
|
7618
|
-
*
|
|
7619
|
-
* A FixedNumber has a fixed bit-width to store values in, and stores all
|
|
7620
|
-
* values internally by multiplying the value by 10 raised to the power of
|
|
7621
|
-
* %%decimals%%.
|
|
7622
|
-
*
|
|
7623
|
-
* If operations are performed that cause a value to grow too high (close to
|
|
7624
|
-
* positive infinity) or too low (close to negative infinity), the value
|
|
7625
|
-
* is said to //overflow//.
|
|
7626
|
-
*
|
|
7627
|
-
* For example, an 8-bit signed value, with 0 decimals may only be within
|
|
7628
|
-
* the range ``-128`` to ``127``; so ``-128 - 1`` will overflow and become
|
|
7629
|
-
* ``127``. Likewise, ``127 + 1`` will overflow and become ``-127``.
|
|
7630
|
-
*
|
|
7631
|
-
* Many operation have a normal and //unsafe// variant. The normal variant
|
|
7632
|
-
* will throw a [[NumericFaultError]] on any overflow, while the //unsafe//
|
|
7633
|
-
* variant will silently allow overflow, corrupting its value value.
|
|
7634
|
-
*
|
|
7635
|
-
* If operations are performed that cause a value to become too small
|
|
7636
|
-
* (close to zero), the value loses precison and is said to //underflow//.
|
|
7637
|
-
*
|
|
7638
|
-
* For example, a value with 1 decimal place may store a number as small
|
|
7639
|
-
* as ``0.1``, but the value of ``0.1 / 2`` is ``0.05``, which cannot fit
|
|
7640
|
-
* into 1 decimal place, so underflow occurs which means precision is lost
|
|
7641
|
-
* and the value becomes ``0``.
|
|
7642
|
-
*
|
|
7643
|
-
* Some operations have a normal and //signalling// variant. The normal
|
|
7644
|
-
* variant will silently ignore underflow, while the //signalling// variant
|
|
7645
|
-
* will thow a [[NumericFaultError]] on underflow.
|
|
7646
|
-
*/
|
|
7647
|
-
class FixedNumber {
|
|
7648
|
-
/**
|
|
7649
|
-
* The specific fixed-point arithmetic field for this value.
|
|
7650
|
-
*/
|
|
7651
|
-
format;
|
|
7652
|
-
#format;
|
|
7653
|
-
// The actual value (accounting for decimals)
|
|
7654
|
-
#val;
|
|
7655
|
-
// A base-10 value to multiple values by to maintain the magnitude
|
|
7656
|
-
#tens;
|
|
7657
|
-
/**
|
|
7658
|
-
* This is a property so console.log shows a human-meaningful value.
|
|
7659
|
-
*
|
|
7660
|
-
* @private
|
|
7661
|
-
*/
|
|
7662
|
-
_value;
|
|
7663
|
-
// Use this when changing this file to get some typing info,
|
|
7664
|
-
// but then switch to any to mask the internal type
|
|
7665
|
-
//constructor(guard: any, value: bigint, format: _FixedFormat) {
|
|
7666
|
-
/**
|
|
7667
|
-
* @private
|
|
7668
|
-
*/
|
|
7669
|
-
constructor(guard, value, format) {
|
|
7670
|
-
assertPrivate(guard, _guard, "FixedNumber");
|
|
7671
|
-
this.#val = value;
|
|
7672
|
-
this.#format = format;
|
|
7673
|
-
const _value = toString(value, format.decimals);
|
|
7674
|
-
defineProperties(this, { format: format.name, _value });
|
|
7675
|
-
this.#tens = getTens(format.decimals);
|
|
7676
|
-
}
|
|
7677
|
-
/**
|
|
7678
|
-
* If true, negative values are permitted, otherwise only
|
|
7679
|
-
* positive values and zero are allowed.
|
|
7680
|
-
*/
|
|
7681
|
-
get signed() { return this.#format.signed; }
|
|
7682
|
-
/**
|
|
7683
|
-
* The number of bits available to store the value.
|
|
7684
|
-
*/
|
|
7685
|
-
get width() { return this.#format.width; }
|
|
7686
|
-
/**
|
|
7687
|
-
* The number of decimal places in the fixed-point arithment field.
|
|
7688
|
-
*/
|
|
7689
|
-
get decimals() { return this.#format.decimals; }
|
|
7690
|
-
/**
|
|
7691
|
-
* The value as an integer, based on the smallest unit the
|
|
7692
|
-
* [[decimals]] allow.
|
|
7693
|
-
*/
|
|
7694
|
-
get value() { return this.#val; }
|
|
7695
|
-
#checkFormat(other) {
|
|
7696
|
-
assertArgument(this.format === other.format, "incompatible format; use fixedNumber.toFormat", "other", other);
|
|
7697
|
-
}
|
|
7698
|
-
#checkValue(val, safeOp) {
|
|
7699
|
-
/*
|
|
7700
|
-
const width = BigInt(this.width);
|
|
7701
|
-
if (this.signed) {
|
|
7702
|
-
const limit = (BN_1 << (width - BN_1));
|
|
7703
|
-
assert(safeOp == null || (val >= -limit && val < limit), "overflow", "NUMERIC_FAULT", {
|
|
7704
|
-
operation: <string>safeOp, fault: "overflow", value: val
|
|
7705
|
-
});
|
|
7706
|
-
|
|
7707
|
-
if (val > BN_0) {
|
|
7708
|
-
val = fromTwos(mask(val, width), width);
|
|
7709
|
-
} else {
|
|
7710
|
-
val = -fromTwos(mask(-val, width), width);
|
|
7711
|
-
}
|
|
7712
|
-
|
|
7713
|
-
} else {
|
|
7714
|
-
const masked = mask(val, width);
|
|
7715
|
-
assert(safeOp == null || (val >= 0 && val === masked), "overflow", "NUMERIC_FAULT", {
|
|
7716
|
-
operation: <string>safeOp, fault: "overflow", value: val
|
|
7717
|
-
});
|
|
7718
|
-
val = masked;
|
|
7719
|
-
}
|
|
7720
|
-
*/
|
|
7721
|
-
val = checkValue(val, this.#format, safeOp);
|
|
7722
|
-
return new FixedNumber(_guard, val, this.#format);
|
|
7723
|
-
}
|
|
7724
|
-
#add(o, safeOp) {
|
|
7725
|
-
this.#checkFormat(o);
|
|
7726
|
-
return this.#checkValue(this.#val + o.#val, safeOp);
|
|
7727
|
-
}
|
|
7728
|
-
/**
|
|
7729
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% added
|
|
7730
|
-
* to %%other%%, ignoring overflow.
|
|
7731
|
-
*/
|
|
7732
|
-
addUnsafe(other) { return this.#add(other); }
|
|
7733
|
-
/**
|
|
7734
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% added
|
|
7735
|
-
* to %%other%%. A [[NumericFaultError]] is thrown if overflow
|
|
7736
|
-
* occurs.
|
|
7737
|
-
*/
|
|
7738
|
-
add(other) { return this.#add(other, "add"); }
|
|
7739
|
-
#sub(o, safeOp) {
|
|
7740
|
-
this.#checkFormat(o);
|
|
7741
|
-
return this.#checkValue(this.#val - o.#val, safeOp);
|
|
7742
|
-
}
|
|
7743
|
-
/**
|
|
7744
|
-
* Returns a new [[FixedNumber]] with the result of %%other%% subtracted
|
|
7745
|
-
* from %%this%%, ignoring overflow.
|
|
7746
|
-
*/
|
|
7747
|
-
subUnsafe(other) { return this.#sub(other); }
|
|
7748
|
-
/**
|
|
7749
|
-
* Returns a new [[FixedNumber]] with the result of %%other%% subtracted
|
|
7750
|
-
* from %%this%%. A [[NumericFaultError]] is thrown if overflow
|
|
7751
|
-
* occurs.
|
|
7752
|
-
*/
|
|
7753
|
-
sub(other) { return this.#sub(other, "sub"); }
|
|
7754
|
-
#mul(o, safeOp) {
|
|
7755
|
-
this.#checkFormat(o);
|
|
7756
|
-
return this.#checkValue((this.#val * o.#val) / this.#tens, safeOp);
|
|
7757
|
-
}
|
|
7758
|
-
/**
|
|
7759
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% multiplied
|
|
7760
|
-
* by %%other%%, ignoring overflow and underflow (precision loss).
|
|
7761
|
-
*/
|
|
7762
|
-
mulUnsafe(other) { return this.#mul(other); }
|
|
7763
|
-
/**
|
|
7764
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% multiplied
|
|
7765
|
-
* by %%other%%. A [[NumericFaultError]] is thrown if overflow
|
|
7766
|
-
* occurs.
|
|
7767
|
-
*/
|
|
7768
|
-
mul(other) { return this.#mul(other, "mul"); }
|
|
7769
|
-
/**
|
|
7770
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% multiplied
|
|
7771
|
-
* by %%other%%. A [[NumericFaultError]] is thrown if overflow
|
|
7772
|
-
* occurs or if underflow (precision loss) occurs.
|
|
7773
|
-
*/
|
|
7774
|
-
mulSignal(other) {
|
|
7775
|
-
this.#checkFormat(other);
|
|
7776
|
-
const value = this.#val * other.#val;
|
|
7777
|
-
assert((value % this.#tens) === BN_0, "precision lost during signalling mul", "NUMERIC_FAULT", {
|
|
7778
|
-
operation: "mulSignal", fault: "underflow", value: this
|
|
7779
|
-
});
|
|
7780
|
-
return this.#checkValue(value / this.#tens, "mulSignal");
|
|
7781
|
-
}
|
|
7782
|
-
#div(o, safeOp) {
|
|
7783
|
-
assert(o.#val !== BN_0, "division by zero", "NUMERIC_FAULT", {
|
|
7784
|
-
operation: "div", fault: "divide-by-zero", value: this
|
|
7785
|
-
});
|
|
7786
|
-
this.#checkFormat(o);
|
|
7787
|
-
return this.#checkValue((this.#val * this.#tens) / o.#val, safeOp);
|
|
7788
|
-
}
|
|
7789
|
-
/**
|
|
7790
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% divided
|
|
7791
|
-
* by %%other%%, ignoring underflow (precision loss). A
|
|
7792
|
-
* [[NumericFaultError]] is thrown if overflow occurs.
|
|
7793
|
-
*/
|
|
7794
|
-
divUnsafe(other) { return this.#div(other); }
|
|
7795
|
-
/**
|
|
7796
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% divided
|
|
7797
|
-
* by %%other%%, ignoring underflow (precision loss). A
|
|
7798
|
-
* [[NumericFaultError]] is thrown if overflow occurs.
|
|
7799
|
-
*/
|
|
7800
|
-
div(other) { return this.#div(other, "div"); }
|
|
7801
|
-
/**
|
|
7802
|
-
* Returns a new [[FixedNumber]] with the result of %%this%% divided
|
|
7803
|
-
* by %%other%%. A [[NumericFaultError]] is thrown if underflow
|
|
7804
|
-
* (precision loss) occurs.
|
|
7805
|
-
*/
|
|
7806
|
-
divSignal(other) {
|
|
7807
|
-
assert(other.#val !== BN_0, "division by zero", "NUMERIC_FAULT", {
|
|
7808
|
-
operation: "div", fault: "divide-by-zero", value: this
|
|
7809
|
-
});
|
|
7810
|
-
this.#checkFormat(other);
|
|
7811
|
-
const value = (this.#val * this.#tens);
|
|
7812
|
-
assert((value % other.#val) === BN_0, "precision lost during signalling div", "NUMERIC_FAULT", {
|
|
7813
|
-
operation: "divSignal", fault: "underflow", value: this
|
|
7814
|
-
});
|
|
7815
|
-
return this.#checkValue(value / other.#val, "divSignal");
|
|
7816
|
-
}
|
|
7817
|
-
/**
|
|
7818
|
-
* Returns a comparison result between %%this%% and %%other%%.
|
|
7819
|
-
*
|
|
7820
|
-
* This is suitable for use in sorting, where ``-1`` implies %%this%%
|
|
7821
|
-
* is smaller, ``1`` implies %%this%% is larger and ``0`` implies
|
|
7822
|
-
* both are equal.
|
|
7823
|
-
*/
|
|
7824
|
-
cmp(other) {
|
|
7825
|
-
let a = this.value, b = other.value;
|
|
7826
|
-
// Coerce a and b to the same magnitude
|
|
7827
|
-
const delta = this.decimals - other.decimals;
|
|
7828
|
-
if (delta > 0) {
|
|
7829
|
-
b *= getTens(delta);
|
|
7830
|
-
}
|
|
7831
|
-
else if (delta < 0) {
|
|
7832
|
-
a *= getTens(-delta);
|
|
7833
|
-
}
|
|
7834
|
-
// Comnpare
|
|
7835
|
-
if (a < b) {
|
|
7836
|
-
return -1;
|
|
7837
|
-
}
|
|
7838
|
-
if (a > b) {
|
|
7839
|
-
return 1;
|
|
7840
|
-
}
|
|
7841
|
-
return 0;
|
|
7842
|
-
}
|
|
7843
|
-
/**
|
|
7844
|
-
* Returns true if %%other%% is equal to %%this%%.
|
|
7845
|
-
*/
|
|
7846
|
-
eq(other) { return this.cmp(other) === 0; }
|
|
7847
|
-
/**
|
|
7848
|
-
* Returns true if %%other%% is less than to %%this%%.
|
|
7849
|
-
*/
|
|
7850
|
-
lt(other) { return this.cmp(other) < 0; }
|
|
7851
|
-
/**
|
|
7852
|
-
* Returns true if %%other%% is less than or equal to %%this%%.
|
|
7853
|
-
*/
|
|
7854
|
-
lte(other) { return this.cmp(other) <= 0; }
|
|
7855
|
-
/**
|
|
7856
|
-
* Returns true if %%other%% is greater than to %%this%%.
|
|
7857
|
-
*/
|
|
7858
|
-
gt(other) { return this.cmp(other) > 0; }
|
|
7859
|
-
/**
|
|
7860
|
-
* Returns true if %%other%% is greater than or equal to %%this%%.
|
|
7861
|
-
*/
|
|
7862
|
-
gte(other) { return this.cmp(other) >= 0; }
|
|
7863
|
-
/**
|
|
7864
|
-
* Returns a new [[FixedNumber]] which is the largest **integer**
|
|
7865
|
-
* that is less than or equal to %%this%%.
|
|
7866
|
-
*
|
|
7867
|
-
* The decimal component of the result will always be ``0``.
|
|
7868
|
-
*/
|
|
7869
|
-
floor() {
|
|
7870
|
-
let val = this.#val;
|
|
7871
|
-
if (this.#val < BN_0) {
|
|
7872
|
-
val -= this.#tens - BN_1;
|
|
7873
|
-
}
|
|
7874
|
-
val = (this.#val / this.#tens) * this.#tens;
|
|
7875
|
-
return this.#checkValue(val, "floor");
|
|
7876
|
-
}
|
|
7877
|
-
/**
|
|
7878
|
-
* Returns a new [[FixedNumber]] which is the smallest **integer**
|
|
7879
|
-
* that is greater than or equal to %%this%%.
|
|
7880
|
-
*
|
|
7881
|
-
* The decimal component of the result will always be ``0``.
|
|
7882
|
-
*/
|
|
7883
|
-
ceiling() {
|
|
7884
|
-
let val = this.#val;
|
|
7885
|
-
if (this.#val > BN_0) {
|
|
7886
|
-
val += this.#tens - BN_1;
|
|
7887
|
-
}
|
|
7888
|
-
val = (this.#val / this.#tens) * this.#tens;
|
|
7889
|
-
return this.#checkValue(val, "ceiling");
|
|
7890
|
-
}
|
|
7891
|
-
/**
|
|
7892
|
-
* Returns a new [[FixedNumber]] with the decimal component
|
|
7893
|
-
* rounded up on ties at %%decimals%% places.
|
|
7894
|
-
*/
|
|
7895
|
-
round(decimals) {
|
|
7896
|
-
if (decimals == null) {
|
|
7897
|
-
decimals = 0;
|
|
7898
|
-
}
|
|
7899
|
-
// Not enough precision to not already be rounded
|
|
7900
|
-
if (decimals >= this.decimals) {
|
|
7901
|
-
return this;
|
|
7902
|
-
}
|
|
7903
|
-
const delta = this.decimals - decimals;
|
|
7904
|
-
const bump = BN_5 * getTens(delta - 1);
|
|
7905
|
-
let value = this.value + bump;
|
|
7906
|
-
const tens = getTens(delta);
|
|
7907
|
-
value = (value / tens) * tens;
|
|
7908
|
-
checkValue(value, this.#format, "round");
|
|
7909
|
-
return new FixedNumber(_guard, value, this.#format);
|
|
7910
|
-
}
|
|
7911
|
-
/**
|
|
7912
|
-
* Returns true if %%this%% is equal to ``0``.
|
|
7913
|
-
*/
|
|
7914
|
-
isZero() { return (this.#val === BN_0); }
|
|
7915
|
-
/**
|
|
7916
|
-
* Returns true if %%this%% is less than ``0``.
|
|
7917
|
-
*/
|
|
7918
|
-
isNegative() { return (this.#val < BN_0); }
|
|
7919
|
-
/**
|
|
7920
|
-
* Returns the string representation of %%this%%.
|
|
7921
|
-
*/
|
|
7922
|
-
toString() { return this._value; }
|
|
7923
|
-
/**
|
|
7924
|
-
* Returns a float approximation.
|
|
7925
|
-
*
|
|
7926
|
-
* Due to IEEE 754 precission (or lack thereof), this function
|
|
7927
|
-
* can only return an approximation and most values will contain
|
|
7928
|
-
* rounding errors.
|
|
7929
|
-
*/
|
|
7930
|
-
toUnsafeFloat() { return parseFloat(this.toString()); }
|
|
7931
|
-
/**
|
|
7932
|
-
* Return a new [[FixedNumber]] with the same value but has had
|
|
7933
|
-
* its field set to %%format%%.
|
|
7934
|
-
*
|
|
7935
|
-
* This will throw if the value cannot fit into %%format%%.
|
|
7936
|
-
*/
|
|
7937
|
-
toFormat(format) {
|
|
7938
|
-
return FixedNumber.fromString(this.toString(), format);
|
|
7939
|
-
}
|
|
7940
|
-
/**
|
|
7941
|
-
* Creates a new [[FixedNumber]] for %%value%% divided by
|
|
7942
|
-
* %%decimal%% places with %%format%%.
|
|
7943
|
-
*
|
|
7944
|
-
* This will throw a [[NumericFaultError]] if %%value%% (once adjusted
|
|
7945
|
-
* for %%decimals%%) cannot fit in %%format%%, either due to overflow
|
|
7946
|
-
* or underflow (precision loss).
|
|
7947
|
-
*/
|
|
7948
|
-
static fromValue(_value, _decimals, _format) {
|
|
7949
|
-
const decimals = (_decimals == null) ? 0 : getNumber(_decimals);
|
|
7950
|
-
const format = getFormat(_format);
|
|
7951
|
-
let value = getBigInt(_value, "value");
|
|
7952
|
-
const delta = decimals - format.decimals;
|
|
7953
|
-
if (delta > 0) {
|
|
7954
|
-
const tens = getTens(delta);
|
|
7955
|
-
assert((value % tens) === BN_0, "value loses precision for format", "NUMERIC_FAULT", {
|
|
7956
|
-
operation: "fromValue", fault: "underflow", value: _value
|
|
7957
|
-
});
|
|
7958
|
-
value /= tens;
|
|
7959
|
-
}
|
|
7960
|
-
else if (delta < 0) {
|
|
7961
|
-
value *= getTens(-delta);
|
|
7962
|
-
}
|
|
7963
|
-
checkValue(value, format, "fromValue");
|
|
7964
|
-
return new FixedNumber(_guard, value, format);
|
|
7965
|
-
}
|
|
7966
|
-
/**
|
|
7967
|
-
* Creates a new [[FixedNumber]] for %%value%% with %%format%%.
|
|
7968
|
-
*
|
|
7969
|
-
* This will throw a [[NumericFaultError]] if %%value%% cannot fit
|
|
7970
|
-
* in %%format%%, either due to overflow or underflow (precision loss).
|
|
7971
|
-
*/
|
|
7972
|
-
static fromString(_value, _format) {
|
|
7973
|
-
const match = _value.match(/^(-?)([0-9]*)\.?([0-9]*)$/);
|
|
7974
|
-
assertArgument(match && (match[2].length + match[3].length) > 0, "invalid FixedNumber string value", "value", _value);
|
|
7975
|
-
const format = getFormat(_format);
|
|
7976
|
-
let whole = (match[2] || "0"), decimal = (match[3] || "");
|
|
7977
|
-
// Pad out the decimals
|
|
7978
|
-
while (decimal.length < format.decimals) {
|
|
7979
|
-
decimal += Zeros;
|
|
7980
|
-
}
|
|
7981
|
-
// Check precision is safe
|
|
7982
|
-
assert(decimal.substring(format.decimals).match(/^0*$/), "too many decimals for format", "NUMERIC_FAULT", {
|
|
7983
|
-
operation: "fromString", fault: "underflow", value: _value
|
|
7984
|
-
});
|
|
7985
|
-
// Remove extra padding
|
|
7986
|
-
decimal = decimal.substring(0, format.decimals);
|
|
7987
|
-
const value = BigInt(match[1] + whole + decimal);
|
|
7988
|
-
checkValue(value, format, "fromString");
|
|
7989
|
-
return new FixedNumber(_guard, value, format);
|
|
7990
|
-
}
|
|
7991
|
-
/**
|
|
7992
|
-
* Creates a new [[FixedNumber]] with the big-endian representation
|
|
7993
|
-
* %%value%% with %%format%%.
|
|
7994
|
-
*
|
|
7995
|
-
* This will throw a [[NumericFaultError]] if %%value%% cannot fit
|
|
7996
|
-
* in %%format%% due to overflow.
|
|
7997
|
-
*/
|
|
7998
|
-
static fromBytes(_value, _format) {
|
|
7999
|
-
let value = toBigInt(getBytes(_value, "value"));
|
|
8000
|
-
const format = getFormat(_format);
|
|
8001
|
-
if (format.signed) {
|
|
8002
|
-
value = fromTwos(value, format.width);
|
|
8003
|
-
}
|
|
8004
|
-
checkValue(value, format, "fromBytes");
|
|
8005
|
-
return new FixedNumber(_guard, value, format);
|
|
8006
|
-
}
|
|
8007
|
-
}
|
|
8008
|
-
//const f1 = FixedNumber.fromString("12.56", "fixed16x2");
|
|
8009
|
-
//const f2 = FixedNumber.fromString("0.3", "fixed16x2");
|
|
8010
|
-
//console.log(f1.divSignal(f2));
|
|
8011
|
-
//const BUMP = FixedNumber.from("0.5");
|
|
8012
|
-
|
|
8013
|
-
/**
|
|
8014
|
-
* Most interactions with Ethereum requires integer values, which use
|
|
8015
|
-
* the smallest magnitude unit.
|
|
8016
|
-
*
|
|
8017
|
-
* For example, imagine dealing with dollars and cents. Since dollars
|
|
8018
|
-
* are divisible, non-integer values are possible, such as ``$10.77``.
|
|
8019
|
-
* By using the smallest indivisible unit (i.e. cents), the value can
|
|
8020
|
-
* be kept as the integer ``1077``.
|
|
8021
|
-
*
|
|
8022
|
-
* When receiving decimal input from the user (as a decimal string),
|
|
8023
|
-
* the value should be converted to an integer and when showing a user
|
|
8024
|
-
* a value, the integer value should be converted to a decimal string.
|
|
8025
|
-
*
|
|
8026
|
-
* This creates a clear distinction, between values to be used by code
|
|
8027
|
-
* (integers) and values used for display logic to users (decimals).
|
|
8028
|
-
*
|
|
8029
|
-
* The native unit in Ethereum, //ether// is divisible to 18 decimal places,
|
|
8030
|
-
* where each individual unit is called a //wei//.
|
|
8031
|
-
*
|
|
8032
|
-
* @_subsection api/utils:Unit Conversion [about-units]
|
|
8033
|
-
*/
|
|
8034
|
-
/**
|
|
8035
|
-
* Converts %%value%% into a //decimal string//, assuming %%unit%% decimal
|
|
8036
|
-
* places. The %%unit%% may be the number of decimal places or the name of
|
|
8037
|
-
* a unit (e.g. ``"gwei"`` for 9 decimal places).
|
|
8038
|
-
*
|
|
8039
|
-
*/
|
|
8040
|
-
function formatUnits(value, unit) {
|
|
8041
|
-
let decimals = 18;
|
|
8042
|
-
return FixedNumber.fromValue(value, decimals, { decimals, width: 512 }).toString();
|
|
8043
|
-
}
|
|
8044
|
-
|
|
8045
7127
|
const byteFormats = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
8046
7128
|
const formatBytes = (bytes, decimals = 2) => {
|
|
8047
7129
|
if (bytes === 0)
|
|
@@ -8053,10 +7135,10 @@ const formatBytes = (bytes, decimals = 2) => {
|
|
|
8053
7135
|
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(decimals))} ${byteFormats[i]}`;
|
|
8054
7136
|
};
|
|
8055
7137
|
|
|
8056
|
-
var contractFactory$1 = "
|
|
8057
|
-
var nativeToken$1 = "
|
|
8058
|
-
var nameService$1 = "
|
|
8059
|
-
var validators$1 = "
|
|
7138
|
+
var contractFactory$1 = "B3OGRUBSARKAMWHZLZZAL5Y4SRUJOE4RIMQX4SELNLMTQVPBGFQXEF5RPPHV";
|
|
7139
|
+
var nativeToken$1 = "B3OGRUBSBSWHYGNYT4O57EK7Q5ZNXYFR23CCS4EUQPQ34RU57V6ROQNLYIVN";
|
|
7140
|
+
var nameService$1 = "B3OGRUBSB23VEDKVPQM5DYREJVI2XYMSQ44ZN3NQG445AZMASFMOUU4P7HLM";
|
|
7141
|
+
var validators$1 = "B3OGRUBSBT6UD4G6V3KP7Z6G2DLMMOV5D5IFIZH2I3KD2CK6VFD3CYY2NCKV";
|
|
8060
7142
|
var addresses$1 = {
|
|
8061
7143
|
contractFactory: contractFactory$1,
|
|
8062
7144
|
nativeToken: nativeToken$1,
|
|
@@ -8075,10 +7157,10 @@ var addresses = {
|
|
|
8075
7157
|
validators: validators$2
|
|
8076
7158
|
};
|
|
8077
7159
|
|
|
8078
|
-
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";
|
|
8079
|
-
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";
|
|
8080
|
-
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";
|
|
8081
|
-
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";
|
|
7160
|
+
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";
|
|
7161
|
+
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";
|
|
7162
|
+
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";
|
|
7163
|
+
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";
|
|
8082
7164
|
var bytecodes = {
|
|
8083
7165
|
contractFactory: contractFactory,
|
|
8084
7166
|
nativeToken: nativeToken,
|
|
@@ -8089,130 +7171,9 @@ var bytecodes = {
|
|
|
8089
7171
|
const TRANSACTION_FEE_BYTES = 1024n;
|
|
8090
7172
|
const TRANSACTION_FEE_UNIT = 10n;
|
|
8091
7173
|
const MAX_TRANSACTION_BYTES = 32 * 1024;
|
|
8092
|
-
const MAX_BLOCK_TRANSACTION_BYTES = 128 * 1024;
|
|
8093
|
-
const MAX_BLOCK_TRANSACTIONS = 256;
|
|
8094
7174
|
(BigInt(MAX_TRANSACTION_BYTES) / TRANSACTION_FEE_BYTES) * TRANSACTION_FEE_UNIT;
|
|
8095
|
-
const FEE_BASIS_POINTS = 10000n;
|
|
8096
|
-
const FEE_PROTOCOL_VERSION = '0.3.0';
|
|
8097
|
-
const MONETARY_POLICY_PROTOCOL_VERSION = '0.3.0';
|
|
8098
7175
|
/** Reserved VM sender; deliberately not a wallet address. */
|
|
8099
7176
|
const MONETARY_POLICY_AUTHORITY = 'leofcoin:protocol:monetary-policy:v1';
|
|
8100
|
-
const BLOCKS_PER_YEAR = 5256000n;
|
|
8101
|
-
const ANNUAL_ISSUANCE_BASIS_POINTS = 200n;
|
|
8102
|
-
const SUPPLY_FLOOR_BASIS_POINTS = 9500n;
|
|
8103
|
-
const MONETARY_FEE_BURN_BASIS_POINTS = 1000n;
|
|
8104
|
-
const parseProtocolVersion = (version) => {
|
|
8105
|
-
const match = /^(\d+)\.(\d+)\.(\d+)/.exec(version);
|
|
8106
|
-
return match ? [Number(match[1]), Number(match[2]), Number(match[3])] : undefined;
|
|
8107
|
-
};
|
|
8108
|
-
const supportsTransactionFees = (version) => {
|
|
8109
|
-
const actual = parseProtocolVersion(version);
|
|
8110
|
-
const required = parseProtocolVersion(FEE_PROTOCOL_VERSION);
|
|
8111
|
-
if (!actual)
|
|
8112
|
-
return false;
|
|
8113
|
-
for (let index = 0; index < required.length; index += 1) {
|
|
8114
|
-
if (actual[index] !== required[index])
|
|
8115
|
-
return actual[index] > required[index];
|
|
8116
|
-
}
|
|
8117
|
-
return true;
|
|
8118
|
-
};
|
|
8119
|
-
const supportsMonetaryPolicy = (version) => {
|
|
8120
|
-
const actual = parseProtocolVersion(version);
|
|
8121
|
-
const required = parseProtocolVersion(MONETARY_POLICY_PROTOCOL_VERSION);
|
|
8122
|
-
if (!actual)
|
|
8123
|
-
return false;
|
|
8124
|
-
for (let index = 0; index < required.length; index += 1) {
|
|
8125
|
-
if (actual[index] !== required[index])
|
|
8126
|
-
return actual[index] > required[index];
|
|
8127
|
-
}
|
|
8128
|
-
return true;
|
|
8129
|
-
};
|
|
8130
|
-
const calculateMonetaryPolicy = (totalSupply, targetSupply) => {
|
|
8131
|
-
if (totalSupply < 0n || targetSupply <= 0n)
|
|
8132
|
-
throw new Error('invalid monetary policy supply');
|
|
8133
|
-
const floorSupply = (targetSupply * SUPPLY_FLOOR_BASIS_POINTS) / FEE_BASIS_POINTS;
|
|
8134
|
-
if (totalSupply < floorSupply) {
|
|
8135
|
-
const annualIssuance = (targetSupply * ANNUAL_ISSUANCE_BASIS_POINTS) / FEE_BASIS_POINTS;
|
|
8136
|
-
const scheduled = annualIssuance / BLOCKS_PER_YEAR || 1n;
|
|
8137
|
-
return { subsidy: scheduled < floorSupply - totalSupply ? scheduled : floorSupply - totalSupply, burnBasisPoints: 0n, floorSupply };
|
|
8138
|
-
}
|
|
8139
|
-
return {
|
|
8140
|
-
subsidy: 0n,
|
|
8141
|
-
burnBasisPoints: totalSupply >= targetSupply ? MONETARY_FEE_BURN_BASIS_POINTS : 0n,
|
|
8142
|
-
floorSupply
|
|
8143
|
-
};
|
|
8144
|
-
};
|
|
8145
|
-
const distributeAmount = (amount, addresses, rotation = 0) => {
|
|
8146
|
-
const canonical = [...new Set(addresses)].sort();
|
|
8147
|
-
if (canonical.length === 0)
|
|
8148
|
-
throw new Error('cannot distribute without validators');
|
|
8149
|
-
const count = BigInt(canonical.length);
|
|
8150
|
-
const base = amount / count;
|
|
8151
|
-
const remainder = Number(amount % count);
|
|
8152
|
-
const result = new Map(canonical.map((address) => [address, base]));
|
|
8153
|
-
for (let index = 0; index < remainder; index += 1) {
|
|
8154
|
-
const address = canonical[(rotation + index) % canonical.length];
|
|
8155
|
-
result.set(address, result.get(address) + 1n);
|
|
8156
|
-
}
|
|
8157
|
-
return result;
|
|
8158
|
-
};
|
|
8159
|
-
const feeRotationIndex = (transactionHash, validatorCount) => {
|
|
8160
|
-
let value = 0n;
|
|
8161
|
-
for (const character of transactionHash)
|
|
8162
|
-
value = (value * 31n + BigInt(character.charCodeAt(0))) % 4294967291n;
|
|
8163
|
-
return Number(value % BigInt(validatorCount));
|
|
8164
|
-
};
|
|
8165
|
-
const distributeTransactionFee = (fee, transactionHash, validatorAddresses, burnBasisPoints = 1000n) => {
|
|
8166
|
-
const canonicalValidators = [...new Set(validatorAddresses)].sort();
|
|
8167
|
-
if (canonicalValidators.length === 0)
|
|
8168
|
-
throw new Error('cannot distribute transaction fee without validators');
|
|
8169
|
-
if (fee < 0n)
|
|
8170
|
-
throw new Error('transaction fee cannot be negative');
|
|
8171
|
-
if (burnBasisPoints < 0n || burnBasisPoints > FEE_BASIS_POINTS)
|
|
8172
|
-
throw new Error('invalid fee burn rate');
|
|
8173
|
-
const burned = (fee * burnBasisPoints) / FEE_BASIS_POINTS;
|
|
8174
|
-
const validatorPool = fee - burned;
|
|
8175
|
-
const count = BigInt(canonicalValidators.length);
|
|
8176
|
-
const base = validatorPool / count;
|
|
8177
|
-
const remainder = Number(validatorPool % count);
|
|
8178
|
-
const start = feeRotationIndex(transactionHash, canonicalValidators.length);
|
|
8179
|
-
const validatorFees = new Map(canonicalValidators.map((validator) => [validator, base]));
|
|
8180
|
-
for (let index = 0; index < remainder; index += 1) {
|
|
8181
|
-
const validator = canonicalValidators[(start + index) % canonicalValidators.length];
|
|
8182
|
-
validatorFees.set(validator, validatorFees.get(validator) + 1n);
|
|
8183
|
-
}
|
|
8184
|
-
const payments = [...validatorFees.entries()]
|
|
8185
|
-
.filter(([, amount]) => amount > 0n)
|
|
8186
|
-
.map(([to, amount]) => ({ to, amount }));
|
|
8187
|
-
return { burned, validatorFees, payments };
|
|
8188
|
-
};
|
|
8189
|
-
const calculateFee = async (transaction, format = false) => {
|
|
8190
|
-
transaction = await new TransactionMessage(transaction);
|
|
8191
|
-
const encodedBytes = BigInt(transaction.encoded.length);
|
|
8192
|
-
const units = (encodedBytes + TRANSACTION_FEE_BYTES - 1n) / TRANSACTION_FEE_BYTES;
|
|
8193
|
-
const fee = units * TRANSACTION_FEE_UNIT;
|
|
8194
|
-
return format ? formatUnits(fee.toString()) : fee;
|
|
8195
|
-
};
|
|
8196
|
-
const validateTransactionResourceLimits = async (transaction) => {
|
|
8197
|
-
const message = await new TransactionMessage(transaction);
|
|
8198
|
-
const size = message.encoded.length;
|
|
8199
|
-
if (size > MAX_TRANSACTION_BYTES) {
|
|
8200
|
-
throw new Error(`transaction exceeds ${MAX_TRANSACTION_BYTES} byte protocol limit: ${size}`);
|
|
8201
|
-
}
|
|
8202
|
-
return size;
|
|
8203
|
-
};
|
|
8204
|
-
const validateBlockResourceLimits = async (transactions) => {
|
|
8205
|
-
if (transactions.length > MAX_BLOCK_TRANSACTIONS) {
|
|
8206
|
-
throw new Error(`block exceeds ${MAX_BLOCK_TRANSACTIONS} transaction protocol limit`);
|
|
8207
|
-
}
|
|
8208
|
-
let size = 0;
|
|
8209
|
-
for (const transaction of transactions)
|
|
8210
|
-
size += await validateTransactionResourceLimits(transaction);
|
|
8211
|
-
if (size > MAX_BLOCK_TRANSACTION_BYTES) {
|
|
8212
|
-
throw new Error(`block transactions exceed ${MAX_BLOCK_TRANSACTION_BYTES} byte protocol limit: ${size}`);
|
|
8213
|
-
}
|
|
8214
|
-
return size;
|
|
8215
|
-
};
|
|
8216
7177
|
|
|
8217
7178
|
class LittlePubSub {
|
|
8218
7179
|
subscribers = new Map();
|
|
@@ -8309,7 +7270,7 @@ class LittlePubSub {
|
|
|
8309
7270
|
}
|
|
8310
7271
|
|
|
8311
7272
|
const pubsub = new LittlePubSub();
|
|
8312
|
-
const worker = new
|
|
7273
|
+
const worker = new BinaryWorker();
|
|
8313
7274
|
const contractFactoryMessage = bytecodes.contractFactory;
|
|
8314
7275
|
const nativeTokenMessage = bytecodes.nativeToken;
|
|
8315
7276
|
const nameServiceMessage = bytecodes.nameService;
|
|
@@ -8327,6 +7288,17 @@ let totalBlocks;
|
|
|
8327
7288
|
let blocks = [];
|
|
8328
7289
|
let contracts = {};
|
|
8329
7290
|
let contractDefinitions = {};
|
|
7291
|
+
const readCodeCache = new Map();
|
|
7292
|
+
let readCodeBytes = 0;
|
|
7293
|
+
let readOnly = false;
|
|
7294
|
+
let readBaseline;
|
|
7295
|
+
const stateFingerprint = value => JSON.stringify(value, (_, item) => {
|
|
7296
|
+
if (typeof item === 'bigint')
|
|
7297
|
+
return { $bigint: item.toString() };
|
|
7298
|
+
if (item && typeof item === 'object' && !Array.isArray(item))
|
|
7299
|
+
return Object.fromEntries(Object.keys(item).sort().map(key => [key, item[key]]));
|
|
7300
|
+
return item;
|
|
7301
|
+
});
|
|
8330
7302
|
let activeMeter;
|
|
8331
7303
|
let activeTimestamp;
|
|
8332
7304
|
let activeCrypto;
|
|
@@ -8346,6 +7318,8 @@ const createMessage = (sender = globalThis.peerid, contract) => {
|
|
|
8346
7318
|
contract,
|
|
8347
7319
|
sender,
|
|
8348
7320
|
call: async (targetOrParams, method, params = []) => {
|
|
7321
|
+
if (readOnly)
|
|
7322
|
+
throw new Error('Read-only contract queries cannot call mutating contracts');
|
|
8349
7323
|
const callParams = typeof targetOrParams === 'object'
|
|
8350
7324
|
? targetOrParams
|
|
8351
7325
|
: { contract: targetOrParams, method, params };
|
|
@@ -8360,6 +7334,8 @@ const createMessage = (sender = globalThis.peerid, contract) => {
|
|
|
8360
7334
|
}
|
|
8361
7335
|
},
|
|
8362
7336
|
staticCall: async (target, method, params = []) => {
|
|
7337
|
+
if (!readOnly)
|
|
7338
|
+
return askFor('staticCall', { snapshot: await _.snapshot(), contract: target, method, params, sender: contract });
|
|
8363
7339
|
const previousMessage = globalThis.msg;
|
|
8364
7340
|
globalThis.msg = createMessage(contract, target);
|
|
8365
7341
|
try {
|
|
@@ -8376,6 +7352,8 @@ const createState = async () => ({
|
|
|
8376
7352
|
lastBlock
|
|
8377
7353
|
});
|
|
8378
7354
|
const debug = (message) => {
|
|
7355
|
+
if (readOnly)
|
|
7356
|
+
return;
|
|
8379
7357
|
worker.postMessage({
|
|
8380
7358
|
type: 'debug',
|
|
8381
7359
|
message
|
|
@@ -8406,7 +7384,7 @@ const instantiateContract = async (hash, state) => {
|
|
|
8406
7384
|
const definition = contractDefinitions[hash];
|
|
8407
7385
|
if (!definition)
|
|
8408
7386
|
throw new Error(`missing contract definition for ${hash}`);
|
|
8409
|
-
const params =
|
|
7387
|
+
const params = cloneState(definition.constructorParameters);
|
|
8410
7388
|
if (state !== undefined)
|
|
8411
7389
|
params.push(cloneState(state));
|
|
8412
7390
|
globalThis.msg = createMessage(definition.creator, hash);
|
|
@@ -8483,9 +7461,16 @@ const respond = (id, value) => {
|
|
|
8483
7461
|
id
|
|
8484
7462
|
});
|
|
8485
7463
|
};
|
|
8486
|
-
const askFor = (question, input) => new Promise((resolve) => {
|
|
7464
|
+
const askFor = (question, input) => new Promise((resolve, reject) => {
|
|
8487
7465
|
const id = globalThis.crypto.randomUUID();
|
|
8488
|
-
|
|
7466
|
+
const onResponse = result => {
|
|
7467
|
+
pubsub.unsubscribe(id, onResponse);
|
|
7468
|
+
if (result.error)
|
|
7469
|
+
reject(new Error(result.error));
|
|
7470
|
+
else
|
|
7471
|
+
resolve(result.input);
|
|
7472
|
+
};
|
|
7473
|
+
pubsub.subscribe(id, onResponse);
|
|
8489
7474
|
worker.postMessage({
|
|
8490
7475
|
type: 'ask',
|
|
8491
7476
|
question,
|
|
@@ -8494,7 +7479,6 @@ const askFor = (question, input) => new Promise((resolve) => {
|
|
|
8494
7479
|
});
|
|
8495
7480
|
});
|
|
8496
7481
|
const resolveContract = (hash) => askFor('contract', hash);
|
|
8497
|
-
const resolveTransaction = (hash) => askFor('transaction', hash);
|
|
8498
7482
|
const runTask = async (id, taskName, input) => {
|
|
8499
7483
|
try {
|
|
8500
7484
|
const result = await _[taskName](input);
|
|
@@ -8513,39 +7497,7 @@ const queueTask = (id, taskName, input) => {
|
|
|
8513
7497
|
taskQueue = taskQueue.then(() => runTask(id, taskName, input));
|
|
8514
7498
|
};
|
|
8515
7499
|
const queueRead = (id, input) => {
|
|
8516
|
-
taskQueue = taskQueue.then(
|
|
8517
|
-
};
|
|
8518
|
-
const _executeTransaction = async (transaction, validators, feesEnabled, burnBasisPoints) => {
|
|
8519
|
-
const hash = await new TransactionMessage(transaction).hash();
|
|
8520
|
-
if (latestTransactions.includes(hash)) {
|
|
8521
|
-
throw new Error(`double transaction found: ${hash}`);
|
|
8522
|
-
}
|
|
8523
|
-
else {
|
|
8524
|
-
latestTransactions.push(hash);
|
|
8525
|
-
const { from, to, method, params, nonce } = transaction;
|
|
8526
|
-
globalThis.msg = createMessage(from, to);
|
|
8527
|
-
globalThis.state = await createState();
|
|
8528
|
-
if (feesEnabled) {
|
|
8529
|
-
const fee = BigInt(await calculateFee(transaction));
|
|
8530
|
-
const { payments, burned } = distributeTransactionFee(fee, hash, validators, burnBasisPoints);
|
|
8531
|
-
await _.collectFee({ from, payments, burned });
|
|
8532
|
-
}
|
|
8533
|
-
await _.execute({
|
|
8534
|
-
contract: to,
|
|
8535
|
-
method,
|
|
8536
|
-
params,
|
|
8537
|
-
executionSeed: hash,
|
|
8538
|
-
executionTimestamp: Number(lastBlock.timestamp ?? transaction.timestamp ?? 0)
|
|
8539
|
-
});
|
|
8540
|
-
worker.postMessage({
|
|
8541
|
-
type: 'transactionLoaded',
|
|
8542
|
-
result: {
|
|
8543
|
-
hash,
|
|
8544
|
-
from,
|
|
8545
|
-
nonce: String(nonce)
|
|
8546
|
-
}
|
|
8547
|
-
});
|
|
8548
|
-
}
|
|
7500
|
+
taskQueue = taskQueue.then(() => runTask(id, 'get', input));
|
|
8549
7501
|
};
|
|
8550
7502
|
const addToWantList = (hash) => {
|
|
8551
7503
|
worker.postMessage({
|
|
@@ -8554,12 +7506,26 @@ const addToWantList = (hash) => {
|
|
|
8554
7506
|
});
|
|
8555
7507
|
};
|
|
8556
7508
|
const _ = {
|
|
7509
|
+
get,
|
|
8557
7510
|
runContract: async ({ decoded, hash, encoded }, state) => {
|
|
8558
7511
|
const topLevelDeployment = !activeExecution;
|
|
8559
7512
|
try {
|
|
8560
7513
|
if (topLevelDeployment)
|
|
8561
7514
|
beginExecution(`deploy:${hash}`, Number(lastBlock.timestamp ?? 0));
|
|
8562
|
-
const
|
|
7515
|
+
const cached = readOnly ? readCodeCache.get(hash) : undefined;
|
|
7516
|
+
const source = cached?.source ?? instrumentContractSource(new TextDecoder().decode(decoded.contract));
|
|
7517
|
+
if (readOnly && !cached) {
|
|
7518
|
+
const size = encoded.byteLength + source.length * 2;
|
|
7519
|
+
if (size <= 8 * 1024 * 1024) {
|
|
7520
|
+
while (readCodeCache.size && (readCodeCache.size >= 128 || readCodeBytes + size > 8 * 1024 * 1024)) {
|
|
7521
|
+
const oldest = readCodeCache.keys().next().value;
|
|
7522
|
+
readCodeBytes -= readCodeCache.get(oldest).size;
|
|
7523
|
+
readCodeCache.delete(oldest);
|
|
7524
|
+
}
|
|
7525
|
+
readCodeCache.set(hash, { decoded: cloneState(decoded), encoded: encoded.slice(), source, size });
|
|
7526
|
+
readCodeBytes += size;
|
|
7527
|
+
}
|
|
7528
|
+
}
|
|
8563
7529
|
const func = new Function('__lfcMeter', 'Date', 'crypto', source);
|
|
8564
7530
|
const Contract = func(meterBridge, dateBridge, cryptoBridge);
|
|
8565
7531
|
if (activeExecution && !contractDefinitions[hash])
|
|
@@ -8573,12 +7539,14 @@ const _ = {
|
|
|
8573
7539
|
debug(`loaded contract: ${hash} size: ${formatBytes(encoded.length)}`);
|
|
8574
7540
|
}
|
|
8575
7541
|
catch (e) {
|
|
8576
|
-
|
|
7542
|
+
if (!readOnly)
|
|
7543
|
+
console.log(e);
|
|
8577
7544
|
worker.postMessage({
|
|
8578
7545
|
type: 'contractError',
|
|
8579
7546
|
message: e.message,
|
|
8580
7547
|
hash
|
|
8581
7548
|
});
|
|
7549
|
+
throw e;
|
|
8582
7550
|
}
|
|
8583
7551
|
finally {
|
|
8584
7552
|
if (topLevelDeployment) {
|
|
@@ -8588,6 +7556,8 @@ const _ = {
|
|
|
8588
7556
|
}
|
|
8589
7557
|
},
|
|
8590
7558
|
execute: async ({ contract, method, params, sender, executionSeed, executionTimestamp, executionRandomness }) => {
|
|
7559
|
+
if (readOnly)
|
|
7560
|
+
throw new Error('Read-only worker cannot execute canonical transactions');
|
|
8591
7561
|
const topLevel = !activeExecution;
|
|
8592
7562
|
try {
|
|
8593
7563
|
if (topLevel) {
|
|
@@ -8660,6 +7630,8 @@ const _ = {
|
|
|
8660
7630
|
}
|
|
8661
7631
|
},
|
|
8662
7632
|
collectFee: async ({ from, payments, burned = 0n }) => {
|
|
7633
|
+
if (readOnly)
|
|
7634
|
+
throw new Error('Read-only worker cannot collect fees');
|
|
8663
7635
|
burned = BigInt(burned);
|
|
8664
7636
|
const seed = `fee:${from}:${JSON.stringify(payments, jsonStringifyBigInt$1)}:${burned}`;
|
|
8665
7637
|
return runAtomicMutation(seed, nativeToken$2, () => {
|
|
@@ -8681,6 +7653,8 @@ const _ = {
|
|
|
8681
7653
|
});
|
|
8682
7654
|
},
|
|
8683
7655
|
settleRewards: async ({ rewards }) => {
|
|
7656
|
+
if (readOnly)
|
|
7657
|
+
throw new Error('Read-only worker cannot mint rewards');
|
|
8684
7658
|
const seed = `rewards:${JSON.stringify(rewards, jsonStringifyBigInt$1)}`;
|
|
8685
7659
|
return runAtomicMutation(seed, nativeToken$2, () => {
|
|
8686
7660
|
globalThis.msg = createMessage(MONETARY_POLICY_AUTHORITY, nativeToken$2);
|
|
@@ -8695,13 +7669,20 @@ const _ = {
|
|
|
8695
7669
|
});
|
|
8696
7670
|
},
|
|
8697
7671
|
init: async (message) => {
|
|
7672
|
+
if (readOnly && !message.readOnly)
|
|
7673
|
+
throw new Error('Read-only worker cannot become a canonical worker');
|
|
7674
|
+
if (message.readOnly) {
|
|
7675
|
+
readOnly = true;
|
|
7676
|
+
contracts = {};
|
|
7677
|
+
contractDefinitions = {};
|
|
7678
|
+
activeExecution = undefined;
|
|
7679
|
+
activeMeter = undefined;
|
|
7680
|
+
activeCrypto = undefined;
|
|
7681
|
+
}
|
|
8698
7682
|
let { peerid, fromState, state, info } = message;
|
|
8699
|
-
if (
|
|
8700
|
-
|
|
8701
|
-
if (state)
|
|
8702
|
-
state = JSON.parse(state, jsonParseBigInt$1);
|
|
7683
|
+
if (readOnly)
|
|
7684
|
+
readBaseline = stateFingerprint(state);
|
|
8703
7685
|
globalThis.peerid = peerid;
|
|
8704
|
-
console.log({ fromState, info });
|
|
8705
7686
|
nativeCalls = BigInt(info?.nativeCalls ?? 0);
|
|
8706
7687
|
nativeMints = BigInt(info?.nativeMints ?? 0);
|
|
8707
7688
|
nativeBurns = BigInt(info?.nativeBurns ?? 0);
|
|
@@ -8713,15 +7694,24 @@ const _ = {
|
|
|
8713
7694
|
totalBlocks = BigInt(info?.totalBlocks ?? 0);
|
|
8714
7695
|
if (fromState) {
|
|
8715
7696
|
if (message.lastBlock) {
|
|
8716
|
-
lastBlock =
|
|
7697
|
+
lastBlock = message.lastBlock;
|
|
8717
7698
|
}
|
|
8718
7699
|
const setState = async (address, state) => {
|
|
7700
|
+
if (readOnly && readCodeCache.has(address)) {
|
|
7701
|
+
// Re-evaluate the cached instrumented source, never reuse a live class:
|
|
7702
|
+
// static fields and lexical closure variables must not leak between reads.
|
|
7703
|
+
const cached = readCodeCache.get(address);
|
|
7704
|
+
await _.runContract({ hash: address, decoded: cached.decoded, encoded: cached.encoded }, state);
|
|
7705
|
+
return;
|
|
7706
|
+
}
|
|
8719
7707
|
const contractBytes = await resolveContract(address);
|
|
8720
|
-
if (contractBytes === address) {
|
|
7708
|
+
if (!contractBytes || contractBytes === address) {
|
|
8721
7709
|
addToWantList(address);
|
|
8722
|
-
|
|
7710
|
+
throw new Error(`Checkpoint contract unavailable: ${address}`);
|
|
8723
7711
|
}
|
|
8724
7712
|
const contract = await new ContractMessage(contractBytes);
|
|
7713
|
+
if (await contract.hash() !== address)
|
|
7714
|
+
throw new Error(`Checkpoint contract hash mismatch: ${address}`);
|
|
8725
7715
|
await _.runContract({ hash: address, decoded: contract.decoded, encoded: contract.encoded }, state);
|
|
8726
7716
|
};
|
|
8727
7717
|
const entries = Object.entries(state);
|
|
@@ -8755,98 +7745,48 @@ const _ = {
|
|
|
8755
7745
|
hash: await contractMessage.hash()
|
|
8756
7746
|
});
|
|
8757
7747
|
}
|
|
8758
|
-
console.log({ blocks: message.blocks });
|
|
8759
|
-
if (message.blocks?.length > 0) {
|
|
8760
|
-
// let pre
|
|
8761
|
-
// try {
|
|
8762
|
-
// const importee = await import('url')
|
|
8763
|
-
// const url = importee.default
|
|
8764
|
-
// if (url) pre = url.fileURLToPath(new URL('.', import.meta.url))
|
|
8765
|
-
// } catch {
|
|
8766
|
-
// // browser env
|
|
8767
|
-
// pre = './'
|
|
8768
|
-
// }
|
|
8769
|
-
// let _worker = await new EasyWorker(pre + 'block-worker.js', {
|
|
8770
|
-
// serialization: 'advanced',
|
|
8771
|
-
// type: 'module'
|
|
8772
|
-
// })
|
|
8773
|
-
// blocks = await _worker.once(message.blocks)
|
|
8774
|
-
// _worker = null
|
|
8775
|
-
// blocks = unique(globalThis.blocks ? globalThis : [], blocks)
|
|
8776
|
-
// for (let i = 0; i < blocks.length; i++) {
|
|
8777
|
-
// }
|
|
8778
|
-
blocks = message.blocks;
|
|
8779
|
-
for (const block of blocks) {
|
|
8780
|
-
// we only revalidate the latest 24 blocks
|
|
8781
|
-
// every 24 blocks a snapshot is taken and stored in state
|
|
8782
|
-
// this means contracts will be restored from this state
|
|
8783
|
-
// this also means devs NEED to make sure the state can be restored
|
|
8784
|
-
// on contract deploy an error will be thrown if state wasn't recoverable
|
|
8785
|
-
if (block.index >= blocks.length - 24) {
|
|
8786
|
-
const transactionCount = blocks[block.index].transactions.length;
|
|
8787
|
-
latestTransactions.splice(-transactionCount, latestTransactions.length);
|
|
8788
|
-
}
|
|
8789
|
-
if (!block.loaded && !fromState) {
|
|
8790
|
-
totalBlocks += 1n;
|
|
8791
|
-
try {
|
|
8792
|
-
const transactions = await Promise.all(block.transactions.map(async (transaction) => {
|
|
8793
|
-
const message = new TransactionMessage(await resolveTransaction(transaction)).decode();
|
|
8794
|
-
if (message === transaction) {
|
|
8795
|
-
throw new Error(`nothing found for ${transaction}`);
|
|
8796
|
-
}
|
|
8797
|
-
return message;
|
|
8798
|
-
}));
|
|
8799
|
-
const validators = block.validators.map(({ address }) => address);
|
|
8800
|
-
transactions.sort((a, b) => {
|
|
8801
|
-
if (a.priority !== b.priority)
|
|
8802
|
-
return a.priority ? -1 : 1;
|
|
8803
|
-
const left = BigInt(a.nonce);
|
|
8804
|
-
const right = BigInt(b.nonce);
|
|
8805
|
-
return left < right ? -1 : left > right ? 1 : 0;
|
|
8806
|
-
});
|
|
8807
|
-
const feesEnabled = supportsTransactionFees(block.protocolVersion);
|
|
8808
|
-
const monetaryPolicyEnabled = supportsMonetaryPolicy(block.protocolVersion);
|
|
8809
|
-
if (monetaryPolicyEnabled)
|
|
8810
|
-
await validateBlockResourceLimits(transactions);
|
|
8811
|
-
const policy = monetaryPolicyEnabled
|
|
8812
|
-
? calculateMonetaryPolicy(BigInt(await get({ contract: nativeToken$2, method: 'totalSupply', params: [] })), BigInt(await get({ contract: nativeToken$2, method: 'targetSupply', params: [] })))
|
|
8813
|
-
: { subsidy: 0n, burnBasisPoints: 1000n };
|
|
8814
|
-
for (const transaction of transactions) {
|
|
8815
|
-
await _executeTransaction(transaction, validators, feesEnabled, policy.burnBasisPoints);
|
|
8816
|
-
}
|
|
8817
|
-
if (monetaryPolicyEnabled && policy.subsidy > 0n) {
|
|
8818
|
-
_.settleRewards({
|
|
8819
|
-
rewards: [...distributeAmount(policy.subsidy, validators, Number(block.index) % validators.length)]
|
|
8820
|
-
});
|
|
8821
|
-
}
|
|
8822
|
-
block.loaded = true;
|
|
8823
|
-
worker.postMessage({
|
|
8824
|
-
type: 'debug',
|
|
8825
|
-
message: `loaded transactions for block: ${block.hash} @${block.index}`
|
|
8826
|
-
});
|
|
8827
|
-
}
|
|
8828
|
-
catch (error) {
|
|
8829
|
-
// just tell chain it's ready so we can get this node sync
|
|
8830
|
-
// when a node connects this node will try to resolve the wantList
|
|
8831
|
-
// this should result in the node beeing sync
|
|
8832
|
-
if (error.message.includes('nothing found for'))
|
|
8833
|
-
worker.postMessage({ type: 'machine-ready', lastBlock });
|
|
8834
|
-
else
|
|
8835
|
-
console.error(error);
|
|
8836
|
-
}
|
|
8837
|
-
}
|
|
8838
|
-
}
|
|
8839
|
-
if (blocks.length > 0) {
|
|
8840
|
-
lastBlock = blocks[blocks.length - 1];
|
|
8841
|
-
}
|
|
8842
|
-
globalThis.blocks = blocks;
|
|
8843
|
-
}
|
|
8844
7748
|
}
|
|
8845
|
-
|
|
7749
|
+
// Startup only restores a verified checkpoint. Unapplied blocks are executed
|
|
7750
|
+
// by Chain's canonical application path, never by a second replay engine.
|
|
7751
|
+
blocks = message.blocks ?? [];
|
|
7752
|
+
if (!readOnly && (!Array.isArray(blocks) || blocks.length !== Number(lastBlock.index) + 1 ||
|
|
7753
|
+
(blocks.length && blocks.at(-1)?.hash !== lastBlock.hash)))
|
|
7754
|
+
throw new Error('Checkpoint history does not match tip');
|
|
7755
|
+
for (let index = 0; index < blocks.length; index++) {
|
|
7756
|
+
if (Number(blocks[index]?.index) !== index ||
|
|
7757
|
+
blocks[index].previousHash !== (index ? blocks[index - 1].hash : '0x0'))
|
|
7758
|
+
throw new Error('Invalid checkpoint history');
|
|
7759
|
+
}
|
|
7760
|
+
globalThis.blocks = blocks;
|
|
7761
|
+
latestTransactions.splice(0, latestTransactions.length, ...blocks.slice(-24).flatMap(block => block.transactions));
|
|
7762
|
+
return true;
|
|
7763
|
+
},
|
|
7764
|
+
read: async ({ contract, method, params, sender = 'leofcoin:read-only' }) => {
|
|
7765
|
+
if (!readOnly)
|
|
7766
|
+
throw new Error('Contract queries require a separate read-only worker');
|
|
7767
|
+
globalThis.msg = createMessage(sender, contract);
|
|
7768
|
+
beginExecution(`read:${contract}:${method}:${JSON.stringify(params, jsonStringifyBigInt$1)}`);
|
|
7769
|
+
try {
|
|
7770
|
+
const result = cloneState(await get({ contract, method, params }));
|
|
7771
|
+
const snapshot = await _.snapshot();
|
|
7772
|
+
if (stateFingerprint(snapshot.states) !== readBaseline)
|
|
7773
|
+
throw new Error('Read-only call attempted to change contract state');
|
|
7774
|
+
return result;
|
|
7775
|
+
}
|
|
7776
|
+
finally {
|
|
7777
|
+
activeMeter = undefined;
|
|
7778
|
+
activeCrypto = undefined;
|
|
7779
|
+
globalThis.msg = undefined;
|
|
7780
|
+
}
|
|
7781
|
+
},
|
|
7782
|
+
snapshot: async () => {
|
|
7783
|
+
const states = {};
|
|
7784
|
+
for (const address of Object.keys(contracts))
|
|
7785
|
+
states[address] = cloneState(await get({ contract: address, method: 'state', params: [] }));
|
|
7786
|
+
return { lastBlock: cloneState(lastBlock), states, info: { ...snapshotCounters(), totalBlocks } };
|
|
8846
7787
|
},
|
|
8847
7788
|
addLoadedBlock: (block) => {
|
|
8848
|
-
const size = formatBytes(block.length);
|
|
8849
|
-
block = JSON.parse(block, jsonParseBigInt$1);
|
|
7789
|
+
const size = formatBytes(encodeValue(block).length);
|
|
8850
7790
|
const index = Number(block.index);
|
|
8851
7791
|
const tipIndex = Number(lastBlock.index);
|
|
8852
7792
|
if (!['number', 'bigint'].includes(typeof block.index) ||
|
|
@@ -8879,9 +7819,9 @@ const _ = {
|
|
|
8879
7819
|
// todo validate here and deprecate addLoadedBlock
|
|
8880
7820
|
}
|
|
8881
7821
|
};
|
|
8882
|
-
worker.onmessage(({ id, type, input }) => {
|
|
7822
|
+
worker.onmessage(({ id, type, input, error }) => {
|
|
8883
7823
|
if (pubsub.hasSubscribers(id)) {
|
|
8884
|
-
pubsub.publish(id, input);
|
|
7824
|
+
pubsub.publish(id, { input, error });
|
|
8885
7825
|
return;
|
|
8886
7826
|
}
|
|
8887
7827
|
switch (type) {
|
|
@@ -8903,6 +7843,9 @@ worker.onmessage(({ id, type, input }) => {
|
|
|
8903
7843
|
case 'settleRewards':
|
|
8904
7844
|
queueTask(id, 'settleRewards', input);
|
|
8905
7845
|
break;
|
|
7846
|
+
case 'snapshot':
|
|
7847
|
+
queueTask(id, 'snapshot', input);
|
|
7848
|
+
break;
|
|
8906
7849
|
case 'contracts':
|
|
8907
7850
|
respond(id, contracts);
|
|
8908
7851
|
break;
|
|
@@ -8927,6 +7870,9 @@ worker.onmessage(({ id, type, input }) => {
|
|
|
8927
7870
|
case 'get':
|
|
8928
7871
|
queueRead(id, input);
|
|
8929
7872
|
break;
|
|
7873
|
+
case 'read':
|
|
7874
|
+
queueTask(id, 'read', input);
|
|
7875
|
+
break;
|
|
8930
7876
|
case 'totalContracts':
|
|
8931
7877
|
respond(id, Object.keys(contracts).length);
|
|
8932
7878
|
break;
|