PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/avalanche/dist/utils
Просмотр файла: errors.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SubnetAddressError = exports.SubnetThresholdError = exports.SubnetIdError = exports.ProtocolError = exports.InvalidEntropy = exports.EVMFeeError = exports.Bech32Error = exports.UnknownTypeError = exports.TypeNameError = exports.TypeIdError = exports.HexError = exports.NodeIdError = exports.PrivateKeyError = exports.Base58Error = exports.MergeRuleError = exports.PublicKeyError = exports.AddressIndexError = exports.BufferSizeError = exports.SubnetOwnerError = exports.DelegationFeeError = exports.TimeError = exports.StakeError = exports.FeeAssetError = exports.EVMOutputError = exports.EVMInputError = exports.SECPMintOutputError = exports.ThresholdError = exports.InsufficientFundsError = exports.UTXOError = exports.OutputIdError = exports.ChecksumError = exports.InvalidOperationIdError = exports.OperationError = exports.InputIdError = exports.TransferableInputError = exports.TransferableOutputError = exports.CredIdError = exports.CodecIdError = exports.TransactionError = exports.NameError = exports.SymbolError = exports.NoAtomicUTXOsError = exports.ChainIdError = exports.GooseEggCheckError = exports.AddressError = exports.AvalancheError = void 0;
const ADDRESS_ERROR_CODE = "1000";
const GOOSE_EGG_CHECK_ERROR_CODE = "1001";
const CHAIN_ID_ERROR_CODE = "1002";
const NO_ATOMIX_UTXOS_ERROR_CODE = "1003";
const SYMBOL_ERROR_CODE = "1004";
const NAME_ERROR_CODE = "1005";
const TRANSACTION_ERROR_CODE = "1006";
const CODEC_ID_ERROR_CODE = "1007";
const CRED_ID_ERROR_CODE = "1008";
const TRANSFERABLE_OUTPUT_ERROR_CODE = "1009";
const TRANSFERABLE_INPUT_ERROR_CODE = "1010";
const INPUT_ID_ERROR_CODE = "1011";
const OPERATION_ERROR_CODE = "1012";
const INVALID_OPERATION_ID_CODE = "1013";
const CHECKSUM_ERROR_CODE = "1014";
const OUTPUT_ID_ERROR_CODE = "1015";
const UTXO_ERROR_CODE = "1016";
const INSUFFICIENT_FUNDS_ERROR_CODE = "1017";
const THRESHOLD_ERROR_CODE = "1018";
const SECP_MINT_OUTPUT_ERROR_CODE = "1019";
const EVM_INPUT_ERROR_CODE = "1020";
const EVM_OUTPUT_ERROR_CODE = "1021";
const FEE_ASSET_ERROR_CODE = "1022";
const STAKE_ERROR_CODE = "1023";
const TIME_ERROR_CODE = "1024";
const DELEGATION_FEE_ERROR_CODE = "1025";
const SUBNET_OWNER_ERROR_CODE = "1026";
const BUFFER_SIZE_ERROR_CODE = "1027";
const ADDRESS_INDEX_ERROR_CODE = "1028";
const PUBLIC_KEY_ERROR_CODE = "1029";
const MERGE_RULE_ERROR_CODE = "1030";
const BASE58_ERROR_CODE = "1031";
const PRIVATE_KEY_ERROR_CODE = "1032";
const NODE_ID_ERROR_CODE = "1033";
const HEX_ERROR_CODE = "1034";
const TYPE_ID_ERROR_CODE = "1035";
const UNKNOWN_TYPE_ERROR_CODE = "1036";
const BECH32_ERROR_CODE = "1037";
const EVM_FEE_ERROR_CODE = "1038";
const INVALID_ENTROPY = "1039";
const PROTOCOL_ERROR_CODE = "1040";
const SUBNET_ID_ERROR_CODE = "1041";
const TYPE_NAME_ERROR_CODE = "1042";
const SUBNET_THRESHOLD_ERROR_CODE = "1043";
const SUBNET_ADDRESS_ERROR_CODE = "1044";
class AvalancheError extends Error {
constructor(m, code) {
super(m);
Object.setPrototypeOf(this, AvalancheError.prototype);
this.errorCode = code;
}
getCode() {
return this.errorCode;
}
}
exports.AvalancheError = AvalancheError;
class AddressError extends AvalancheError {
constructor(m) {
super(m, ADDRESS_ERROR_CODE);
Object.setPrototypeOf(this, AddressError.prototype);
}
}
exports.AddressError = AddressError;
class GooseEggCheckError extends AvalancheError {
constructor(m) {
super(m, GOOSE_EGG_CHECK_ERROR_CODE);
Object.setPrototypeOf(this, GooseEggCheckError.prototype);
}
}
exports.GooseEggCheckError = GooseEggCheckError;
class ChainIdError extends AvalancheError {
constructor(m) {
super(m, CHAIN_ID_ERROR_CODE);
Object.setPrototypeOf(this, ChainIdError.prototype);
}
}
exports.ChainIdError = ChainIdError;
class NoAtomicUTXOsError extends AvalancheError {
constructor(m) {
super(m, NO_ATOMIX_UTXOS_ERROR_CODE);
Object.setPrototypeOf(this, NoAtomicUTXOsError.prototype);
}
}
exports.NoAtomicUTXOsError = NoAtomicUTXOsError;
class SymbolError extends AvalancheError {
constructor(m) {
super(m, SYMBOL_ERROR_CODE);
Object.setPrototypeOf(this, SymbolError.prototype);
}
}
exports.SymbolError = SymbolError;
class NameError extends AvalancheError {
constructor(m) {
super(m, NAME_ERROR_CODE);
Object.setPrototypeOf(this, NameError.prototype);
}
}
exports.NameError = NameError;
class TransactionError extends AvalancheError {
constructor(m) {
super(m, TRANSACTION_ERROR_CODE);
Object.setPrototypeOf(this, TransactionError.prototype);
}
}
exports.TransactionError = TransactionError;
class CodecIdError extends AvalancheError {
constructor(m) {
super(m, CODEC_ID_ERROR_CODE);
Object.setPrototypeOf(this, CodecIdError.prototype);
}
}
exports.CodecIdError = CodecIdError;
class CredIdError extends AvalancheError {
constructor(m) {
super(m, CRED_ID_ERROR_CODE);
Object.setPrototypeOf(this, CredIdError.prototype);
}
}
exports.CredIdError = CredIdError;
class TransferableOutputError extends AvalancheError {
constructor(m) {
super(m, TRANSFERABLE_OUTPUT_ERROR_CODE);
Object.setPrototypeOf(this, TransferableOutputError.prototype);
}
}
exports.TransferableOutputError = TransferableOutputError;
class TransferableInputError extends AvalancheError {
constructor(m) {
super(m, TRANSFERABLE_INPUT_ERROR_CODE);
Object.setPrototypeOf(this, TransferableInputError.prototype);
}
}
exports.TransferableInputError = TransferableInputError;
class InputIdError extends AvalancheError {
constructor(m) {
super(m, INPUT_ID_ERROR_CODE);
Object.setPrototypeOf(this, InputIdError.prototype);
}
}
exports.InputIdError = InputIdError;
class OperationError extends AvalancheError {
constructor(m) {
super(m, OPERATION_ERROR_CODE);
Object.setPrototypeOf(this, OperationError.prototype);
}
}
exports.OperationError = OperationError;
class InvalidOperationIdError extends AvalancheError {
constructor(m) {
super(m, INVALID_OPERATION_ID_CODE);
Object.setPrototypeOf(this, InvalidOperationIdError.prototype);
}
}
exports.InvalidOperationIdError = InvalidOperationIdError;
class ChecksumError extends AvalancheError {
constructor(m) {
super(m, CHECKSUM_ERROR_CODE);
Object.setPrototypeOf(this, ChecksumError.prototype);
}
}
exports.ChecksumError = ChecksumError;
class OutputIdError extends AvalancheError {
constructor(m) {
super(m, OUTPUT_ID_ERROR_CODE);
Object.setPrototypeOf(this, OutputIdError.prototype);
}
}
exports.OutputIdError = OutputIdError;
class UTXOError extends AvalancheError {
constructor(m) {
super(m, UTXO_ERROR_CODE);
Object.setPrototypeOf(this, UTXOError.prototype);
}
}
exports.UTXOError = UTXOError;
class InsufficientFundsError extends AvalancheError {
constructor(m) {
super(m, INSUFFICIENT_FUNDS_ERROR_CODE);
Object.setPrototypeOf(this, InsufficientFundsError.prototype);
}
}
exports.InsufficientFundsError = InsufficientFundsError;
class ThresholdError extends AvalancheError {
constructor(m) {
super(m, THRESHOLD_ERROR_CODE);
Object.setPrototypeOf(this, ThresholdError.prototype);
}
}
exports.ThresholdError = ThresholdError;
class SECPMintOutputError extends AvalancheError {
constructor(m) {
super(m, SECP_MINT_OUTPUT_ERROR_CODE);
Object.setPrototypeOf(this, SECPMintOutputError.prototype);
}
}
exports.SECPMintOutputError = SECPMintOutputError;
class EVMInputError extends AvalancheError {
constructor(m) {
super(m, EVM_INPUT_ERROR_CODE);
Object.setPrototypeOf(this, EVMInputError.prototype);
}
}
exports.EVMInputError = EVMInputError;
class EVMOutputError extends AvalancheError {
constructor(m) {
super(m, EVM_OUTPUT_ERROR_CODE);
Object.setPrototypeOf(this, EVMOutputError.prototype);
}
}
exports.EVMOutputError = EVMOutputError;
class FeeAssetError extends AvalancheError {
constructor(m) {
super(m, FEE_ASSET_ERROR_CODE);
Object.setPrototypeOf(this, FeeAssetError.prototype);
}
}
exports.FeeAssetError = FeeAssetError;
class StakeError extends AvalancheError {
constructor(m) {
super(m, STAKE_ERROR_CODE);
Object.setPrototypeOf(this, StakeError.prototype);
}
}
exports.StakeError = StakeError;
class TimeError extends AvalancheError {
constructor(m) {
super(m, TIME_ERROR_CODE);
Object.setPrototypeOf(this, TimeError.prototype);
}
}
exports.TimeError = TimeError;
class DelegationFeeError extends AvalancheError {
constructor(m) {
super(m, DELEGATION_FEE_ERROR_CODE);
Object.setPrototypeOf(this, DelegationFeeError.prototype);
}
}
exports.DelegationFeeError = DelegationFeeError;
class SubnetOwnerError extends AvalancheError {
constructor(m) {
super(m, SUBNET_OWNER_ERROR_CODE);
Object.setPrototypeOf(this, SubnetOwnerError.prototype);
}
}
exports.SubnetOwnerError = SubnetOwnerError;
class BufferSizeError extends AvalancheError {
constructor(m) {
super(m, BUFFER_SIZE_ERROR_CODE);
Object.setPrototypeOf(this, BufferSizeError.prototype);
}
}
exports.BufferSizeError = BufferSizeError;
class AddressIndexError extends AvalancheError {
constructor(m) {
super(m, ADDRESS_INDEX_ERROR_CODE);
Object.setPrototypeOf(this, AddressIndexError.prototype);
}
}
exports.AddressIndexError = AddressIndexError;
class PublicKeyError extends AvalancheError {
constructor(m) {
super(m, PUBLIC_KEY_ERROR_CODE);
Object.setPrototypeOf(this, PublicKeyError.prototype);
}
}
exports.PublicKeyError = PublicKeyError;
class MergeRuleError extends AvalancheError {
constructor(m) {
super(m, MERGE_RULE_ERROR_CODE);
Object.setPrototypeOf(this, MergeRuleError.prototype);
}
}
exports.MergeRuleError = MergeRuleError;
class Base58Error extends AvalancheError {
constructor(m) {
super(m, BASE58_ERROR_CODE);
Object.setPrototypeOf(this, Base58Error.prototype);
}
}
exports.Base58Error = Base58Error;
class PrivateKeyError extends AvalancheError {
constructor(m) {
super(m, PRIVATE_KEY_ERROR_CODE);
Object.setPrototypeOf(this, PrivateKeyError.prototype);
}
}
exports.PrivateKeyError = PrivateKeyError;
class NodeIdError extends AvalancheError {
constructor(m) {
super(m, NODE_ID_ERROR_CODE);
Object.setPrototypeOf(this, NodeIdError.prototype);
}
}
exports.NodeIdError = NodeIdError;
class HexError extends AvalancheError {
constructor(m) {
super(m, HEX_ERROR_CODE);
Object.setPrototypeOf(this, HexError.prototype);
}
}
exports.HexError = HexError;
class TypeIdError extends AvalancheError {
constructor(m) {
super(m, TYPE_ID_ERROR_CODE);
Object.setPrototypeOf(this, TypeIdError.prototype);
}
}
exports.TypeIdError = TypeIdError;
class TypeNameError extends AvalancheError {
constructor(m) {
super(m, TYPE_NAME_ERROR_CODE);
Object.setPrototypeOf(this, TypeNameError.prototype);
}
}
exports.TypeNameError = TypeNameError;
class UnknownTypeError extends AvalancheError {
constructor(m) {
super(m, UNKNOWN_TYPE_ERROR_CODE);
Object.setPrototypeOf(this, UnknownTypeError.prototype);
}
}
exports.UnknownTypeError = UnknownTypeError;
class Bech32Error extends AvalancheError {
constructor(m) {
super(m, BECH32_ERROR_CODE);
Object.setPrototypeOf(this, Bech32Error.prototype);
}
}
exports.Bech32Error = Bech32Error;
class EVMFeeError extends AvalancheError {
constructor(m) {
super(m, EVM_FEE_ERROR_CODE);
Object.setPrototypeOf(this, EVMFeeError.prototype);
}
}
exports.EVMFeeError = EVMFeeError;
class InvalidEntropy extends AvalancheError {
constructor(m) {
super(m, INVALID_ENTROPY);
Object.setPrototypeOf(this, InvalidEntropy.prototype);
}
}
exports.InvalidEntropy = InvalidEntropy;
class ProtocolError extends AvalancheError {
constructor(m) {
super(m, PROTOCOL_ERROR_CODE);
Object.setPrototypeOf(this, ProtocolError.prototype);
}
}
exports.ProtocolError = ProtocolError;
class SubnetIdError extends AvalancheError {
constructor(m) {
super(m, SUBNET_ID_ERROR_CODE);
Object.setPrototypeOf(this, SubnetIdError.prototype);
}
}
exports.SubnetIdError = SubnetIdError;
class SubnetThresholdError extends AvalancheError {
constructor(m) {
super(m, SUBNET_THRESHOLD_ERROR_CODE);
Object.setPrototypeOf(this, SubnetThresholdError.prototype);
}
}
exports.SubnetThresholdError = SubnetThresholdError;
class SubnetAddressError extends AvalancheError {
constructor(m) {
super(m, SUBNET_ADDRESS_ERROR_CODE);
Object.setPrototypeOf(this, SubnetAddressError.prototype);
}
}
exports.SubnetAddressError = SubnetAddressError;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFNLGtCQUFrQixHQUFXLE1BQU0sQ0FBQTtBQUN6QyxNQUFNLDBCQUEwQixHQUFXLE1BQU0sQ0FBQTtBQUNqRCxNQUFNLG1CQUFtQixHQUFXLE1BQU0sQ0FBQTtBQUMxQyxNQUFNLDBCQUEwQixHQUFXLE1BQU0sQ0FBQTtBQUNqRCxNQUFNLGlCQUFpQixHQUFXLE1BQU0sQ0FBQTtBQUN4QyxNQUFNLGVBQWUsR0FBVyxNQUFNLENBQUE7QUFDdEMsTUFBTSxzQkFBc0IsR0FBVyxNQUFNLENBQUE7QUFDN0MsTUFBTSxtQkFBbUIsR0FBVyxNQUFNLENBQUE7QUFDMUMsTUFBTSxrQkFBa0IsR0FBVyxNQUFNLENBQUE7QUFDekMsTUFBTSw4QkFBOEIsR0FBVyxNQUFNLENBQUE7QUFDckQsTUFBTSw2QkFBNkIsR0FBVyxNQUFNLENBQUE7QUFDcEQsTUFBTSxtQkFBbUIsR0FBVyxNQUFNLENBQUE7QUFDMUMsTUFBTSxvQkFBb0IsR0FBVyxNQUFNLENBQUE7QUFDM0MsTUFBTSx5QkFBeUIsR0FBVyxNQUFNLENBQUE7QUFDaEQsTUFBTSxtQkFBbUIsR0FBVyxNQUFNLENBQUE7QUFDMUMsTUFBTSxvQkFBb0IsR0FBVyxNQUFNLENBQUE7QUFDM0MsTUFBTSxlQUFlLEdBQVcsTUFBTSxDQUFBO0FBQ3RDLE1BQU0sNkJBQTZCLEdBQVcsTUFBTSxDQUFBO0FBQ3BELE1BQU0sb0JBQW9CLEdBQVcsTUFBTSxDQUFBO0FBQzNDLE1BQU0sMkJBQTJCLEdBQVcsTUFBTSxDQUFBO0FBQ2xELE1BQU0sb0JBQW9CLEdBQVcsTUFBTSxDQUFBO0FBQzNDLE1BQU0scUJBQXFCLEdBQVcsTUFBTSxDQUFBO0FBQzVDLE1BQU0sb0JBQW9CLEdBQVcsTUFBTSxDQUFBO0FBQzNDLE1BQU0sZ0JBQWdCLEdBQVcsTUFBTSxD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QyxFQUFFLG1CQUFtQixDQUFDLENBQUE7UUFDN0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3RELENBQUM7Q0FDRjtBQUxELHNDQUtDO0FBRUQsTUFBYSxhQUFjLFNBQVEsY0FBYztJQUMvQyxZQUFZLENBQVM7UUFDbkIsS0FBSyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFBO1FBQzlCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN0RCxDQUFDO0NBQ0Y7QUFMRCxzQ0FLQztBQUVELE1BQWEsb0JBQXFCLFNBQVEsY0FBYztJQUN0RCxZQUFZLENBQVM7UUFDbkIsS0FBSyxDQUFDLENBQUMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzdELENBQUM7Q0FDRjtBQUxELG9EQUtDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxjQUFjO0lBQ3BELFlBQVksQ0FBUztRQUNuQixLQUFLLENBQUMsQ0FBQyxFQUFFLHlCQUF5QixDQUFDLENBQUE7UUFDbkMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDM0QsQ0FBQztDQUNGO0FBTEQsZ0RBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBBRERSRVNTX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAwMFwiXG5jb25zdCBHT09TRV9FR0dfQ0hFQ0tfRVJST1JfQ09ERTogc3RyaW5nID0gXCIxMDAxXCJcbmNvbnN0IENIQUlOX0lEX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAwMlwiXG5jb25zdCBOT19BVE9NSVhfVVRYT1NfRVJST1JfQ09ERTogc3RyaW5nID0gXCIxMDAzXCJcbmNvbnN0IFNZTUJPTF9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMDRcIlxuY29uc3QgTkFNRV9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMDVcIlxuY29uc3QgVFJBTlNBQ1RJT05fRVJST1JfQ09ERTogc3RyaW5nID0gXCIxMDA2XCJcbmNvbnN0IENPREVDX0lEX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAwN1wiXG5jb25zdCBDUkVEX0lEX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAwOFwiXG5jb25zdCBUUkFOU0ZFUkFCTEVfT1VUUFVUX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAwOVwiXG5jb25zdCBUUkFOU0ZFUkFCTEVfSU5QVVRfRVJST1JfQ09ERTogc3RyaW5nID0gXCIxMDEwXCJcbmNvbnN0IElOUFVUX0lEX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAxMVwiXG5jb25zdCBPUEVSQVRJT05fRVJST1JfQ09ERTogc3RyaW5nID0gXCIxMDEyXCJcbmNvbnN0IElOVkFMSURfT1BFUkFUSU9OX0lEX0NPREU6IHN0cmluZyA9IFwiMTAxM1wiXG5jb25zdCBDSEVDS1NVTV9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMTRcIlxuY29uc3QgT1VUUFVUX0lEX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAxNVwiXG5jb25zdCBVVFhPX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAxNlwiXG5jb25zdCBJTlNVRkZJQ0lFTlRfRlVORFNfRVJST1JfQ09ERTogc3RyaW5nID0gXCIxMDE3XCJcbmNvbnN0IFRIUkVTSE9MRF9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMThcIlxuY29uc3QgU0VDUF9NSU5UX09VVFBVVF9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMTlcIlxuY29uc3QgRVZNX0lOUFVUX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAyMFwiXG5jb25zdCBFVk1fT1VUUFVUX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAyMVwiXG5jb25zdCBGRUVfQVNTRVRfRVJST1JfQ09ERTogc3RyaW5nID0gXCIxMDIyXCJcbmNvbnN0IFNUQUtFX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAyM1wiXG5jb25zdCBUSU1FX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAyNFwiXG5jb25zdCBERUxFR0FUSU9OX0ZFRV9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMjVcIlxuY29uc3QgU1VCTkVUX09XTkVSX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAyNlwiXG5jb25zdCBCVUZGRVJfU0laRV9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMjdcIlxuY29uc3QgQUREUkVTU19JTkRFWF9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMjhcIlxuY29uc3QgUFVCTElDX0tFWV9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMjlcIlxuY29uc3QgTUVSR0VfUlVMRV9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMzBcIlxuY29uc3QgQkFTRTU4X0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAzMVwiXG5jb25zdCBQUklWQVRFX0tFWV9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMzJcIlxuY29uc3QgTk9ERV9JRF9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMzNcIlxuY29uc3QgSEVYX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAzNFwiXG5jb25zdCBUWVBFX0lEX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTAzNVwiXG5jb25zdCBVTktOT1dOX1RZUEVfRVJST1JfQ09ERTogc3RyaW5nID0gXCIxMDM2XCJcbmNvbnN0IEJFQ0gzMl9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMzdcIlxuY29uc3QgRVZNX0ZFRV9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwMzhcIlxuY29uc3QgSU5WQUxJRF9FTlRST1BZOiBzdHJpbmcgPSBcIjEwMzlcIlxuY29uc3QgUFJPVE9DT0xfRVJST1JfQ09ERTogc3RyaW5nID0gXCIxMDQwXCJcbmNvbnN0IFNVQk5FVF9JRF9FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwNDFcIlxuY29uc3QgVFlQRV9OQU1FX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTA0MlwiXG5jb25zdCBTVUJORVRfVEhSRVNIT0xEX0VSUk9SX0NPREU6IHN0cmluZyA9IFwiMTA0M1wiXG5jb25zdCBTVUJORVRfQUREUkVTU19FUlJPUl9DT0RFOiBzdHJpbmcgPSBcIjEwNDRcIlxuXG5leHBvcnQgY2xhc3MgQXZhbGFuY2hlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGVycm9yQ29kZTogc3RyaW5nXG4gIGNvbnN0cnVjdG9yKG06IHN0cmluZywgY29kZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXZhbGFuY2hlRXJyb3IucHJvdG90eXBlKVxuICAgIHRoaXMuZXJyb3JDb2RlID0gY29kZVxuICB9XG5cbiAgZ2V0Q29kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvckNvZGVcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkcmVzc0Vycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBBRERSRVNTX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEFkZHJlc3NFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvb3NlRWdnQ2hlY2tFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgR09PU0VfRUdHX0NIRUNLX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEdvb3NlRWdnQ2hlY2tFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENoYWluSWRFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgQ0hBSU5fSURfRVJST1JfQ09ERSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ2hhaW5JZEVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTm9BdG9taWNVVFhPc0Vycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBOT19BVE9NSVhfVVRYT1NfRVJST1JfQ09ERSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTm9BdG9taWNVVFhPc0Vycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3ltYm9sRXJyb3IgZXh0ZW5kcyBBdmFsYW5jaGVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG06IHN0cmluZykge1xuICAgIHN1cGVyKG0sIFNZTUJPTF9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTeW1ib2xFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5hbWVFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgTkFNRV9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBOYW1lRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkVycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBUUkFOU0FDVElPTl9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBUcmFuc2FjdGlvbkVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29kZWNJZEVycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBDT0RFQ19JRF9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb2RlY0lkRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcmVkSWRFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgQ1JFRF9JRF9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDcmVkSWRFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyYWJsZU91dHB1dEVycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBUUkFOU0ZFUkFCTEVfT1VUUFVUX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRyYW5zZmVyYWJsZU91dHB1dEVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJhYmxlSW5wdXRFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgVFJBTlNGRVJBQkxFX0lOUFVUX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRyYW5zZmVyYWJsZUlucHV0RXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnB1dElkRXJyb3IgZXh0ZW5kcyBBdmFsYW5jaGVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG06IHN0cmluZykge1xuICAgIHN1cGVyKG0sIElOUFVUX0lEX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIElucHV0SWRFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbkVycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBPUEVSQVRJT05fRVJST1JfQ09ERSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgT3BlcmF0aW9uRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkT3BlcmF0aW9uSWRFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgSU5WQUxJRF9PUEVSQVRJT05fSURfQ09ERSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZE9wZXJhdGlvbklkRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDaGVja3N1bUVycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBDSEVDS1NVTV9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDaGVja3N1bUVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3V0cHV0SWRFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgT1VUUFVUX0lEX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE91dHB1dElkRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVVFhPRXJyb3IgZXh0ZW5kcyBBdmFsYW5jaGVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG06IHN0cmluZykge1xuICAgIHN1cGVyKG0sIFVUWE9fRVJST1JfQ09ERSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVVRYT0Vycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW5zdWZmaWNpZW50RnVuZHNFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgSU5TVUZGSUNJRU5UX0ZVTkRTX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEluc3VmZmljaWVudEZ1bmRzRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUaHJlc2hvbGRFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgVEhSRVNIT0xEX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRocmVzaG9sZEVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU0VDUE1pbnRPdXRwdXRFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgU0VDUF9NSU5UX09VVFBVVF9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTRUNQTWludE91dHB1dEVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRVZNSW5wdXRFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgRVZNX0lOUFVUX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEVWTUlucHV0RXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFVk1PdXRwdXRFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgRVZNX09VVFBVVF9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFVk1PdXRwdXRFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZlZUFzc2V0RXJyb3IgZXh0ZW5kcyBBdmFsYW5jaGVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG06IHN0cmluZykge1xuICAgIHN1cGVyKG0sIEZFRV9BU1NFVF9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBGZWVBc3NldEVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3Rha2VFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgU1RBS0VfRVJST1JfQ09ERSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU3Rha2VFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRpbWVFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgVElNRV9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBUaW1lRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZWxlZ2F0aW9uRmVlRXJyb3IgZXh0ZW5kcyBBdmFsYW5jaGVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG06IHN0cmluZykge1xuICAgIHN1cGVyKG0sIERFTEVHQVRJT05fRkVFX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIERlbGVnYXRpb25GZWVFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1Ym5ldE93bmVyRXJyb3IgZXh0ZW5kcyBBdmFsYW5jaGVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG06IHN0cmluZykge1xuICAgIHN1cGVyKG0sIFNVQk5FVF9PV05FUl9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTdWJuZXRPd25lckVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnVmZmVyU2l6ZUVycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBCVUZGRVJfU0laRV9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBCdWZmZXJTaXplRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZGRyZXNzSW5kZXhFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgQUREUkVTU19JTkRFWF9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBBZGRyZXNzSW5kZXhFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFB1YmxpY0tleUVycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBQVUJMSUNfS0VZX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFB1YmxpY0tleUVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWVyZ2VSdWxlRXJyb3IgZXh0ZW5kcyBBdmFsYW5jaGVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG06IHN0cmluZykge1xuICAgIHN1cGVyKG0sIE1FUkdFX1JVTEVfRVJST1JfQ09ERSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTWVyZ2VSdWxlRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNlNThFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgQkFTRTU4X0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEJhc2U1OEVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJpdmF0ZUtleUVycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBQUklWQVRFX0tFWV9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBQcml2YXRlS2V5RXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb2RlSWRFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgTk9ERV9JRF9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBOb2RlSWRFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEhleEVycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBIRVhfRVJST1JfQ09ERSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSGV4RXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUeXBlSWRFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgVFlQRV9JRF9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBUeXBlSWRFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFR5cGVOYW1lRXJyb3IgZXh0ZW5kcyBBdmFsYW5jaGVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG06IHN0cmluZykge1xuICAgIHN1cGVyKG0sIFRZUEVfTkFNRV9FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBUeXBlTmFtZUVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVW5rbm93blR5cGVFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgVU5LTk9XTl9UWVBFX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVua25vd25UeXBlRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCZWNoMzJFcnJvciBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgQkVDSDMyX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEJlY2gzMkVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRVZNRmVlRXJyb3IgZXh0ZW5kcyBBdmFsYW5jaGVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG06IHN0cmluZykge1xuICAgIHN1cGVyKG0sIEVWTV9GRUVfRVJST1JfQ09ERSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRVZNRmVlRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkRW50cm9weSBleHRlbmRzIEF2YWxhbmNoZUVycm9yIHtcbiAgY29uc3RydWN0b3IobTogc3RyaW5nKSB7XG4gICAgc3VwZXIobSwgSU5WQUxJRF9FTlRST1BZKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkRW50cm9weS5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFByb3RvY29sRXJyb3IgZXh0ZW5kcyBBdmFsYW5jaGVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG06IHN0cmluZykge1xuICAgIHN1cGVyKG0sIFBST1RPQ09MX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFByb3RvY29sRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdWJuZXRJZEVycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBTVUJORVRfSURfRVJST1JfQ09ERSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU3VibmV0SWRFcnJvci5wcm90b3R5cGUpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1Ym5ldFRocmVzaG9sZEVycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBTVUJORVRfVEhSRVNIT0xEX0VSUk9SX0NPREUpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFN1Ym5ldFRocmVzaG9sZEVycm9yLnByb3RvdHlwZSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3VibmV0QWRkcmVzc0Vycm9yIGV4dGVuZHMgQXZhbGFuY2hlRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtLCBTVUJORVRfQUREUkVTU19FUlJPUl9DT0RFKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTdWJuZXRBZGRyZXNzRXJyb3IucHJvdG90eXBlKVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JSZXNwb25zZU9iamVjdCB7XG4gIGNvZGU6IG51bWJlclxuICBtZXNzYWdlOiBzdHJpbmdcbiAgZGF0YT86IG51bGxcbn1cbiJdfQ==Выполнить команду
Для локальной разработки. Не используйте в интернете!