PHP WebShell

Текущая директория: /opt/BitGoJS/modules/bitgo/dist/test/v2/lib

Просмотр файла: recovery-nocks.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
 * @prettier
 */
const nock = require("nock");
const sdk_core_1 = require("@bitgo/sdk-core");
module.exports.nockXrpRecovery = function nockXrpRecovery() {
    nock('https://s.altnet.rippletest.net:51234', { allowUnmocked: false })
        .post('/', {
        method: 'account_info',
        params: [
            {
                account: 'raGZWRkRBUWdQJsKYEzwXJNbCZMTqX56aA',
                strict: true,
                ledger_index: 'current',
                queue: true,
                signer_lists: true,
            },
        ],
    })
        .reply(200, {
        result: {
            account_data: {
                Account: 'raGZWRkRBUWdQJsKYEzwXJNbCZMTqX56aA',
                Balance: '9944000000',
                Flags: 1179648,
                LedgerEntryType: 'AccountRoot',
                OwnerCount: 5,
                PreviousTxnID: '82460E9FAF24F53388DC9CBA91934B3F82107148CD20BD26E80DF774323545C3',
                PreviousTxnLgrSeq: 396996,
                Sequence: 4,
                index: 'C676D324BA53FEDF601F7EAFBC88DAC5E7440FF491EBC54066ECDB61A2B2D1EC',
                signer_lists: [
                    {
                        Flags: 0,
                        LedgerEntryType: 'SignerList',
                        OwnerNode: '0000000000000000',
                        PreviousTxnID: '0E9BF2DBAA36539FA4CDB3FF8ABF5DC9A43859C33953385C9486AD63E451B2FC',
                        PreviousTxnLgrSeq: 396943,
                        SignerEntries: [
                            {
                                SignerEntry: {
                                    Account: 'raSYaBTfbeARRdacGBbs5tjA7XkyB1RC8x',
                                    SignerWeight: 1,
                                },
                            },
                            {
                                SignerEntry: {
                                    Account: 'rGevN87RpWBbdLxKCF4FAqWgRoSyMJA81f',
                                    SignerWeight: 1,
                                },
                            },
                            {
                                SignerEntry: {
                                    Account: 'rGmQHwvb5SZRbyhp4JBHdpRzSmgqADxPbE',
                                    SignerWeight: 1,
                                },
                            },
                        ],
                        SignerListID: 0,
                        SignerQuorum: 2,
                        index: 'A36A7ED6108FF7F871C0EC3CF573FE23CC9780436D64A2EE069A8F27E8D40471',
                    },
                ],
            },
            ledger_current_index: 397138,
            queue_data: {
                txn_count: 0,
            },
            status: 'success',
            validated: false,
        },
    })
        .post('/', { method: 'fee' })
        .reply(200, {
        result: {
            current_ledger_size: '0',
            current_queue_size: '0',
            drops: {
                base_fee: '10',
                median_fee: '5000',
                minimum_fee: '10',
                open_ledger_fee: '10',
            },
            expected_ledger_size: '51',
            ledger_current_index: 397138,
            levels: {
                median_level: '128000',
                minimum_level: '256',
                open_ledger_level: '256',
                reference_level: '256',
            },
            max_queue_size: '1020',
            status: 'success',
        },
    })
        .post('/', { method: 'server_info' })
        .reply(200, {
        result: {
            info: {
                build_version: '0.70.1',
                complete_ledgers: '386967-397137',
                hostid: 'HI',
                io_latency_ms: 1,
                last_close: {
                    converge_time_s: 1.999,
                    proposers: 4,
                },
                load_factor: 1,
                peers: 4,
                pubkey_node: 'n9KMmZw85d5erkaTv62Vz6SbDJSyeihAEB3jwnb3Bqnr2AydRVep',
                server_state: 'proposing',
                state_accounting: {
                    connected: {
                        duration_us: '4999941',
                        transitions: 1,
                    },
                    disconnected: {
                        duration_us: '1202712',
                        transitions: 1,
                    },
                    full: {
                        duration_us: '94064175867',
                        transitions: 1,
                    },
                    syncing: {
                        duration_us: '6116096',
                        transitions: 1,
                    },
                    tracking: {
                        duration_us: '3',
                        transitions: 1,
                    },
                },
                uptime: 94077,
                validated_ledger: {
                    age: 3,
                    base_fee_xrp: 0.00001,
                    hash: '918D326D224F8F49B07B02CD0A2207B7239BBFA824CF512F8D1D9DBCADC115E5',
                    reserve_base_xrp: 20,
                    reserve_inc_xrp: 5,
                    seq: 397137,
                },
                validation_quorum: 4,
            },
            status: 'success',
        },
    })
        .post('/', {
        method: 'account_lines',
        params: [
            {
                account: 'raGZWRkRBUWdQJsKYEzwXJNbCZMTqX56aA',
                ledger_index: 'validated',
            },
        ],
    })
        .reply(200, {
        result: {
            account: 'rMficzfw4t5iGu9hhB23eKwDjM879vJWTR',
            ledger_hash: 'E6F38D1D7B94153BF7FFC8D8CC1DF57D57151D26FC2EB7647B5631786B955EFF',
            ledger_index: 1848964,
            lines: [],
            validated: true,
        },
    });
};
const nockEthData = [
    {
        params: {
            module: 'account',
            action: 'txlist',
            address: '0x74c2137d54b0fc9f907e13f14e0dd18485fee924',
        },
        response: {
            status: '0',
            message: 'No transactions found',
            result: [],
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0x74c2137d54b0fc9f907e13f14e0dd18485fee924',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '100000000000000000',
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0x5df5a96b478bb1808140d87072143e60262e8670',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '2200000000000000000',
        },
    },
    {
        params: {
            module: 'account',
            action: 'txlist',
            address: '0xba6d9d82cf2920c544b834b72f4c6d11a3ef3de6',
        },
        response: {
            status: '0',
            message: 'No transactions found',
            result: [],
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0xba6d9d82cf2920c544b834b72f4c6d11a3ef3de6',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '0',
        },
    },
    {
        params: {
            module: 'account',
            action: 'txlist',
            address: '0x74c2137d54b0fc9f907e13f14e0dd18485fee924',
        },
        response: {
            status: '0',
            message: 'No transactions found',
            result: [],
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0x74c2137d54b0fc9f907e13f14e0dd18485fee924',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '100000000000000000',
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0x5df5a96b478bb1808140d87072143e60262e8670',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '2200000000000000000',
        },
    },
    {
        params: {
            module: 'proxy',
            action: 'eth_call',
            to: '0x5df5a96b478bb1808140d87072143e60262e8670',
            data: 'a0b7967b',
            tag: 'latest',
        },
        response: {
            jsonrpc: '2.0',
            result: '0x0000000000000000000000000000000000000000000000000000000000000001',
            id: 1,
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '20000000000000000',
        },
    },
    {
        params: {
            module: 'account',
            action: 'txlist',
            address: '0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91',
        },
        response: {
            status: '1',
            message: 'OK',
            result: [
                {
                    blockNumber: '26745364',
                    timeStamp: '1628778676',
                    hash: '0x41d589b7b12abfad4975f42e62d3b96de1eb9ca477f62b4d5a49b140c3fb6a21',
                    nonce: '4',
                    blockHash: '0x908c07cc1425e90a0d58e5cc1b109510e14097e04aae741f8de874bfd0f7d87b',
                    transactionIndex: '2',
                    from: '0x1ce43f2185de5734d3004dd0283f58eaec787e4a',
                    to: '0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91',
                    value: '20000000000000000',
                    gas: '21000',
                    gasPrice: '1000000000',
                    isError: '0',
                    txreceipt_status: '1',
                    input: '0x',
                    contractAddress: '',
                    cumulativeGasUsed: '357536',
                    gasUsed: '21000',
                    confirmations: '959',
                },
            ],
        },
    },
    {
        params: {
            module: 'account',
            action: 'txlist',
            address: '0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91',
        },
        response: {
            status: '1',
            message: 'OK',
            result: [
                {
                    blockNumber: '26745364',
                    timeStamp: '1628778676',
                    hash: '0x41d589b7b12abfad4975f42e62d3b96de1eb9ca477f62b4d5a49b140c3fb6a21',
                    nonce: '4',
                    blockHash: '0x908c07cc1425e90a0d58e5cc1b109510e14097e04aae741f8de874bfd0f7d87b',
                    transactionIndex: '2',
                    from: '0x1ce43f2185de5734d3004dd0283f58eaec787e4a',
                    to: '0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91',
                    value: '20000000000000000',
                    gas: '21000',
                    gasPrice: '1000000000',
                    isError: '0',
                    txreceipt_status: '1',
                    input: '0x',
                    contractAddress: '',
                    cumulativeGasUsed: '357536',
                    gasUsed: '21000',
                    confirmations: '959',
                },
            ],
        },
    },
    {
        params: {
            module: 'account',
            action: 'tokenbalance',
            contractaddress: '0x4f96fe3b7a6cf9725f59d353f723c1bdb64ca6aa',
            address: '0xdf07117705a9f8dc4c2a78de66b7f1797dba9d4e',
            tag: 'latest',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '1000000000000000000',
        },
    },
    {
        params: {
            module: 'proxy',
            action: 'eth_call',
            to: '0xdf07117705a9f8dc4c2a78de66b7f1797dba9d4e',
            data: 'a0b7967b',
            tag: 'latest',
        },
        response: {
            jsonrpc: '2.0',
            result: '0x0000000000000000000000000000000000000000000000000000000000002a7f',
            id: 1,
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0xdf07117705a9f8dc4c2a78de66b7f1797dba9d4e',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '9999999999999999928',
        },
    },
];
module.exports.nockEthLikeRecovery = function (bitgo, nockData = nockEthData) {
    let apiKey;
    if (sdk_core_1.Environments[bitgo.getEnv()].etherscanApiToken) {
        apiKey = sdk_core_1.Environments[bitgo.getEnv()].etherscanApiToken;
    }
    nockData.forEach((data) => {
        if (apiKey) {
            data.params.apiKey = apiKey;
        }
        nock('https://api-holesky.etherscan.io/').get('/api').query(data.params).reply(200, data.response);
        nock('https://api-amoy.polygonscan.com').get('/api').query(data.params).reply(200, data.response);
        nock('https://api-testnet.bscscan.com').get('/api').query(data.params).reply(200, data.response);
    });
};
module.exports.nockEtherscanRateLimitError = function () {
    const response = {
        status: '0',
        message: 'NOTOK',
        result: 'Max rate limit reached, rate limit of 3/1sec applied"',
    };
    const params = {
        module: 'account',
        action: 'txlist',
        address: '0x74c2137d54b0fc9f907e13f14e0dd18485fee924',
    };
    nock('https://api-holesky.etherscan.io').get('/api').query(params).reply(200, response);
};
module.exports.nockXlmRecovery = function () {
    nock('https://horizon-testnet.stellar.org')
        .get('/accounts/GAGCQLUGMX76XC24JRCRJWOHXK23ONURH4433JOEPU6CH7Z44CCYUCEL')
        .reply(404, {
        status: 404,
    })
        .get('/accounts/GASW277S2ZOE7H7A5EQ5H5AKLP6UA6Z5AKOSWV6ARBEGTSIGMZMC7AIZ')
        .reply(200, {
        balance: '10',
    })
        .get('/accounts/GAUAGTL3NBZ7NP3UIMZCVJYM6O2NKUP6XRTK4E5VZDVIQX3CBYIVMDIB')
        .reply(200, {
        id: 'GAUAGTL3NBZ7NP3UIMZCVJYM6O2NKUP6XRTK4E5VZDVIQX3CBYIVMDIB',
        paging_token: '',
        account_id: 'GAUAGTL3NBZ7NP3UIMZCVJYM6O2NKUP6XRTK4E5VZDVIQX3CBYIVMDIB',
        sequence: '47339455954026497',
        subentry_count: 3,
        thresholds: {
            low_threshold: 1,
            med_threshold: 2,
            high_threshold: 3,
        },
        flags: {
            auth_required: false,
            auth_revocable: false,
        },
        balances: [
            {
                balance: '9.9999600',
                buying_liabilities: '0.0000000',
                selling_liabilities: '0.0000000',
                asset_type: 'native',
            },
        ],
        signers: [
            {
                public_key: 'GBNK4FJO6FDQNBVLUP7MICEJUVINPNJZCDDTTYS3LVFC6J7LKEXLOBKM',
                weight: 1,
                key: 'GBNK4FJO6FDQNBVLUP7MICEJUVINPNJZCDDTTYS3LVFC6J7LKEXLOBKM',
                type: 'ed25519_public_key',
            },
            {
                public_key: 'GCBABJPE3UTZ3JPUEIZEXAQQ5CMNX5UPYKOB7HHXSHBCIGD7VV64H6KU',
                weight: 1,
                key: 'GCBABJPE3UTZ3JPUEIZEXAQQ5CMNX5UPYKOB7HHXSHBCIGD7VV64H6KU',
                type: 'ed25519_public_key',
            },
            {
                public_key: 'GBSKZM7HG4S2W4N4H65XHTGS724HQA7EFMSSCVLPWW53ZFL6SNVFJKJO',
                weight: 1,
                key: 'GBSKZM7HG4S2W4N4H65XHTGS724HQA7EFMSSCVLPWW53ZFL6SNVFJKJO',
                type: 'ed25519_public_key',
            },
            {
                public_key: 'GAUAGTL3NBZ7NP3UIMZCVJYM6O2NKUP6XRTK4E5VZDVIQX3CBYIVMDIB',
                weight: 0,
                key: 'GAUAGTL3NBZ7NP3UIMZCVJYM6O2NKUP6XRTK4E5VZDVIQX3CBYIVMDIB',
                type: 'ed25519_public_key',
            },
        ],
        data: {},
    })
        .get('/ledgers')
        .query(true)
        .times(2)
        .reply(200, {
        _links: {
            self: {
                href: 'https://horizon-testnet.stellar.org/ledgers?c=0.37643100613718006&cursor=&limit=1&order=desc',
            },
            next: {
                href: 'https://horizon-testnet.stellar.org/ledgers?c=0.37643100613718006&cursor=48419653113872384&limit=1&order=desc',
            },
            prev: {
                href: 'https://horizon-testnet.stellar.org/ledgers?c=0.37643100613718006&cursor=48419653113872384&limit=1&order=asc',
            },
        },
        _embedded: {
            records: [
                {
                    _links: {
                        self: {
                            href: 'https://horizon-testnet.stellar.org/ledgers/11273579',
                        },
                        transactions: {
                            href: 'https://horizon-testnet.stellar.org/ledgers/11273579/transactions{?cursor,limit,order}',
                            templated: true,
                        },
                        operations: {
                            href: 'https://horizon-testnet.stellar.org/ledgers/11273579/operations{?cursor,limit,order}',
                            templated: true,
                        },
                        payments: {
                            href: 'https://horizon-testnet.stellar.org/ledgers/11273579/payments{?cursor,limit,order}',
                            templated: true,
                        },
                        effects: {
                            href: 'https://horizon-testnet.stellar.org/ledgers/11273579/effects{?cursor,limit,order}',
                            templated: true,
                        },
                    },
                    id: '5fab170a47afa15cc130790f8c3bcb846fa295b1fa51139437c4d120878e850f',
                    paging_token: '48419653113872384',
                    hash: '5fab170a47afa15cc130790f8c3bcb846fa295b1fa51139437c4d120878e850f',
                    prev_hash: '5efe6f32662af8ab2d8a5f8984c027ad330f181bf5b9e3812d5a08f62e2cb978',
                    sequence: 11273579,
                    transaction_count: 0,
                    operation_count: 0,
                    closed_at: '2018-09-27T22:13:35Z',
                    total_coins: '104284715255.7420028',
                    fee_pool: '1708880873.6769687',
                    base_fee_in_stroops: 100,
                    base_reserve_in_stroops: 5000000,
                    max_tx_set_size: 50,
                    protocol_version: 10,
                    header_xdr: 'AAAACl7+bzJmKvirLYpfiYTAJ60zDxgb9bnjgS1aCPYuLLl4NB4MFpS0jQk8X3Ut93c2Q7cYEEWnhZ3tteMhZnztSM8AAAAAW61WDwAAAAAAAAAALzWviJxVDV+wrzVnS4YoI8xI050aKnAfney+tZxfcY2aFysDFVMF16cqgZjw8yiyzyfc1u0eqpLtLrZyYEam/ACsBWsOeO/1wzZt/AA8ti5WY8aXAAAA3QAAAAAAC4SRAAAAZABMS0AAAAAyuglBsLFyGmBOqJ250fDa76bY5/c1v9TBQl0ALhzx2G6vXcdZSm8aoCBPWHZBrK7GfpHa4DbiDqIav4yzjanIUSJ9CWKlXQXHWff9yKUlpaVJJy4TcELJV3w0nlwaNbRzLf+JwGVYb6BnB2GiZESvf1yEibvlU21ZVeEBsccbkg4AAAAA',
                },
            ],
        },
    });
};
module.exports.nockTronRecovery = function () {
    // full node - sendTrx from tronweb, build transaction call
    nock('https://api.shasta.trongrid.io')
        .post('/wallet/createtransaction')
        .reply(200, {
        visible: false,
        txID: '312c9254667b7dc4823f69e9e20ed55c2fb81f0421f956c5e85680d098e75ac8',
        raw_data: {
            contract: [
                {
                    parameter: {
                        value: {
                            amount: 10000000,
                            owner_address: '41e7e11df2c5704888c3cb63fb43a9498bd1812cb2',
                            to_address: '41f5f414d447aafe70bb9b9d93912cbc4c54f0c014',
                        },
                        type_url: 'type.googleapis.com/protocol.TransferContract',
                    },
                    type: 'TransferContract',
                },
            ],
            ref_block_bytes: 'a762',
            ref_block_hash: '18dfe946fbf7a0ac',
            expiration: 1676660043000,
            timestamp: 1676659983799,
        },
        raw_data_hex: '0a02a762220818dfe946fbf7a0ac40f8d9e785e6305a69080112650a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412340a1541e7e11df2c5704888c3cb63fb43a9498bd1812cb2121541f5f414d447aafe70bb9b9d93912cbc4c54f0c01418c8d19cad0370b78be485e630',
    });
    // full node - retrieve account information call
    nock('https://api.shasta.trongrid.io')
        .get('/v1/accounts/TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE')
        .reply(200, {
        data: [
            {
                latest_opration_time: 1676487672000,
                owner_permission: {
                    keys: [
                        {
                            address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                            weight: 1,
                        },
                        {
                            address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                            weight: 1,
                        },
                        {
                            address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                            weight: 1,
                        },
                    ],
                    threshold: 2,
                    permission_name: 'owner',
                },
                account_resource: {
                    latest_consume_time_for_energy: 1676487672000,
                },
                active_permission: [
                    {
                        operations: '7fff1fc0037e0000000000000000000000000000000000000000000000000000',
                        keys: [
                            {
                                address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                                weight: 1,
                            },
                            {
                                address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                                weight: 1,
                            },
                            {
                                address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                                weight: 1,
                            },
                        ],
                        threshold: 2,
                        id: 2,
                        type: 'Active',
                        permission_name: 'active0',
                    },
                ],
                frozenV2: [
                    {},
                    {
                        type: 'ENERGY',
                    },
                    {
                        type: 'UNKNOWN_ENUM_VALUE_ResourceCode_2',
                    },
                ],
                address: '41e7e11df2c5704888c3cb63fb43a9498bd1812cb2',
                balance: 901147400,
                create_time: 1676487288000,
                trc20: [],
                latest_consume_free_time: 1676487672000,
            },
        ],
        success: true,
        meta: {
            at: 1676655089952,
            page_size: 1,
        },
    });
};
module.exports.nockTronReceiveRecovery = function () {
    // full node - sendTrx from tronweb, build transaction call
    nock('https://api.shasta.trongrid.io')
        .post('/wallet/createtransaction')
        .reply(200, {
        visible: false,
        txID: 'cb9a1b5569e8c09197d1e9bba51357159ffa8b7e6b18306ea615073fc8842b64',
        raw_data: {
            contract: [
                {
                    parameter: {
                        value: {
                            amount: 199000000,
                            owner_address: '418b04ecdc3db7e8da7cd838492f66e424a051e2cd',
                            to_address: '4132c753bf8d3de7358748a75fcf299f146dff6e4e',
                        },
                        type_url: 'type.googleapis.com/protocol.TransferContract',
                    },
                    type: 'TransferContract',
                },
            ],
            ref_block_bytes: '81e0',
            ref_block_hash: '5b1b20e9ebeaa4f8',
            expiration: 1685952282000,
            timestamp: 1685952224483,
        },
        raw_data_hex: '0a0281e022085b1b20e9ebeaa4f84090fbd8d488315a68080112640a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412330a15418b04ecdc3db7e8da7cd838492f66e424a051e2cd12154132c753bf8d3de7358748a75fcf299f146dff6e4e18c0fff15e70e3b9d5d48831',
    });
    // full node - retrieve account information call
    // Zero Balance
    nock('https://api.shasta.trongrid.io')
        .get('/v1/accounts/TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE')
        .reply(200, {
        data: [
            {
                latest_opration_time: 1685950887000,
                owner_permission: {
                    keys: [
                        {
                            address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                            weight: 1,
                        },
                        {
                            address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                            weight: 1,
                        },
                        {
                            address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                            weight: 1,
                        },
                    ],
                    threshold: 2,
                    permission_name: 'owner',
                },
                free_net_usage: 335,
                account_resource: {
                    latest_consume_time_for_energy: 1676487672000,
                    energy_window_size: 28800,
                },
                active_permission: [
                    {
                        operations: '7fff1fc0037e0000000000000000000000000000000000000000000000000000',
                        keys: [
                            {
                                address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                                weight: 1,
                            },
                            {
                                address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                                weight: 1,
                            },
                            {
                                address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                                weight: 1,
                            },
                        ],
                        threshold: 2,
                        id: 2,
                        type: 'Active',
                        permission_name: 'active0',
                    },
                ],
                frozenV2: [
                    {},
                    {
                        type: 'ENERGY',
                    },
                    {
                        type: 'UNKNOWN_ENUM_VALUE_ResourceCode_2',
                    },
                ],
                address: '41e7e11df2c5704888c3cb63fb43a9498bd1812cb2',
                create_time: 1676487288000,
                trc20: [],
                latest_consume_free_time: 1685950887000,
                net_window_size: 28800,
            },
        ],
        success: true,
        meta: {
            at: 1685951137816,
            page_size: 1,
        },
    });
    // receive address with balance
    nock('https://api.shasta.trongrid.io')
        .get('/v1/accounts/TNeGpwAurk7kjQLdcdWhFr8YP8E9Za8w1x')
        .reply(200, {
        data: [
            {
                owner_permission: {
                    keys: [
                        {
                            address: 'TNeGpwAurk7kjQLdcdWhFr8YP8E9Za8w1x',
                            weight: 1,
                        },
                    ],
                    threshold: 1,
                    permission_name: 'owner',
                },
                account_resource: {
                    energy_window_size: 28800,
                },
                active_permission: [
                    {
                        operations: '7fff1fc0033ec307000000000000000000000000000000000000000000000000',
                        keys: [
                            {
                                address: 'TNeGpwAurk7kjQLdcdWhFr8YP8E9Za8w1x',
                                weight: 1,
                            },
                        ],
                        threshold: 1,
                        id: 2,
                        type: 'Active',
                        permission_name: 'active',
                    },
                ],
                frozenV2: [
                    {},
                    {
                        type: 'ENERGY',
                    },
                    {
                        type: 'UNKNOWN_ENUM_VALUE_ResourceCode_2',
                    },
                ],
                address: '418b04ecdc3db7e8da7cd838492f66e424a051e2cd',
                balance: 200000000,
                create_time: 1685952000000,
                trc20: [],
                net_window_size: 28800,
            },
        ],
        success: true,
        meta: {
            at: 1685952122106,
            page_size: 1,
        },
    });
};
module.exports.nockTronReceiveRecoveryZeroFunds = function () {
    // full node - retrieve account information call
    // Nocking Zero Balance
    nock('https://api.shasta.trongrid.io')
        .persist()
        .get((uri) => uri.includes('/v1/accounts/'))
        .reply(200, {
        data: [
            {
                latest_opration_time: 1685950887000,
                owner_permission: {
                    keys: [
                        {
                            address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                            weight: 1,
                        },
                        {
                            address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                            weight: 1,
                        },
                        {
                            address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                            weight: 1,
                        },
                    ],
                    threshold: 2,
                    permission_name: 'owner',
                },
                free_net_usage: 335,
                account_resource: {
                    latest_consume_time_for_energy: 1676487672000,
                    energy_window_size: 28800,
                },
                active_permission: [
                    {
                        operations: '7fff1fc0037e0000000000000000000000000000000000000000000000000000',
                        keys: [
                            {
                                address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                                weight: 1,
                            },
                            {
                                address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                                weight: 1,
                            },
                            {
                                address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                                weight: 1,
                            },
                        ],
                        threshold: 2,
                        id: 2,
                        type: 'Active',
                        permission_name: 'active0',
                    },
                ],
                frozenV2: [
                    {},
                    {
                        type: 'ENERGY',
                    },
                    {
                        type: 'UNKNOWN_ENUM_VALUE_ResourceCode_2',
                    },
                ],
                address: '41e7e11df2c5704888c3cb63fb43a9498bd1812cb2',
                create_time: 1676487288000,
                trc20: [],
                latest_consume_free_time: 1685950887000,
                net_window_size: 28800,
            },
        ],
        success: true,
        meta: {
            at: 1685951137816,
            page_size: 1,
        },
    });
};
module.exports.nockTronTokenRecovery = function () {
    // full node - sendTrx from tronweb, build transaction call
    nock('https://api.shasta.trongrid.io')
        .post('/wallet/triggersmartcontract')
        .reply(200, {
        result: {
            result: true,
        },
        transaction: {
            visible: false,
            txID: '06d51eb1b4bd35d1f323c6edd6d63d7f11b1651b024e548ea2a8872a8fad7f5c',
            raw_data: {
                contract: [
                    {
                        parameter: {
                            value: {
                                data: 'a9059cbb000000000000000000000000f5f414d447aafe70bb9b9d93912cbc4c54f0c0140000000000000000000000000000000000000000000000000000000124101100',
                                owner_address: '416a0a05e098c628f7f3ca63dbb5756e5c0c018521',
                                contract_address: '4142a1e39aefa49290f2b3f9ed688d7cecf86cd6e0',
                            },
                            type_url: 'type.googleapis.com/protocol.TriggerSmartContract',
                        },
                        type: 'TriggerSmartContract',
                    },
                ],
                ref_block_bytes: 'a71c',
                ref_block_hash: 'd0ecb53aa03882a6',
                expiration: 1676659815000,
                fee_limit: 100000000,
                timestamp: 1676659758242,
            },
            raw_data_hex: '0a02a71c2208d0ecb53aa03882a640d8e4d985e6305aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a15416a0a05e098c628f7f3ca63dbb5756e5c0c01852112154142a1e39aefa49290f2b3f9ed688d7cecf86cd6e02244a9059cbb000000000000000000000000f5f414d447aafe70bb9b9d93912cbc4c54f0c014000000000000000000000000000000000000000000000000000000012410110070a2a9d685e630900180c2d72f',
        },
    });
    // full node - retrieve account information call
    nock('https://api.shasta.trongrid.io')
        .get('/v1/accounts/TKdtdoNiqqEyGsMmJyb5pgwSYf7dTCcmKY')
        .reply(200, {
        data: [
            {
                latest_opration_time: 1676487351000,
                owner_permission: {
                    keys: [
                        {
                            address: 'TKdtdoNiqqEyGsMmJyb5pgwSYf7dTCcmKY',
                            weight: 1,
                        },
                        {
                            address: 'TQmVnE97fXeP6wEhzrmSWLbUQGsmgSy1KE',
                            weight: 1,
                        },
                        {
                            address: 'TYdnm79iTh4ZEY83HpjkpKk55htujxYtc9',
                            weight: 1,
                        },
                    ],
                    threshold: 2,
                    permission_name: 'owner',
                },
                account_resource: {
                    latest_consume_time_for_energy: 1676487351000,
                },
                active_permission: [
                    {
                        operations: '7fff1fc0037e0000000000000000000000000000000000000000000000000000',
                        keys: [
                            {
                                address: 'TKdtdoNiqqEyGsMmJyb5pgwSYf7dTCcmKY',
                                weight: 1,
                            },
                            {
                                address: 'TQmVnE97fXeP6wEhzrmSWLbUQGsmgSy1KE',
                                weight: 1,
                            },
                            {
                                address: 'TYdnm79iTh4ZEY83HpjkpKk55htujxYtc9',
                                weight: 1,
                            },
                        ],
                        threshold: 2,
                        id: 2,
                        type: 'Active',
                        permission_name: 'active0',
                    },
                ],
                frozenV2: [
                    {},
                    {
                        type: 'ENERGY',
                    },
                    {
                        type: 'UNKNOWN_ENUM_VALUE_ResourceCode_2',
                    },
                ],
                address: '416a0a05e098c628f7f3ca63dbb5756e5c0c018521',
                balance: 3889047400,
                create_time: 1676486460000,
                trc20: [
                    {
                        TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs: '4900000000',
                    },
                ],
                latest_consume_free_time: 1676487351000,
            },
        ],
        success: true,
        meta: {
            at: 1676654983645,
            page_size: 1,
        },
    });
};
module.exports.nockEosRecovery = function () {
    nock('https://kylin.eosn.io').post('*').reply(502);
    nock('https://kylin.eosn.io')
        .post('/v1/chain/get_info')
        .reply(200, {
        server_version: '14185431',
        chain_id: '2a02a0053e5a8cf73a56ba0fda11e4d92e0238a4a2aa74fccf46d5a910746840',
        head_block_num: 39752030,
        last_irreversible_block_num: 39751705,
        last_irreversible_block_id: '025e90194fbe7ba5773af4b3ed099aaed0fb26b8f7750e414ea0ee975a04cdc1',
        head_block_id: '025e915eff653f4ad408e1b36e40f6b4d842afde81672446f91ca1e615ebf03c',
        head_block_time: '2019-07-18T17:52:49.000',
        head_block_producer: 'eosnationftw',
        virtual_block_cpu_limit: 200000000,
        virtual_block_net_limit: 524288000,
        block_cpu_limit: 199900,
        block_net_limit: 524288,
        server_version_string: 'v1.8.1',
        fork_db_head_block_num: 39752030,
        fork_db_head_block_id: '025e915eff653f4ad408e1b36e40f6b4d842afde81672446f91ca1e615ebf03c',
    })
        .post('/v1/chain/get_block', { block_num_or_id: 39752030 })
        .reply(200, {
        timestamp: '2019-07-18T17:52:49.000',
        producer: 'eosnationftw',
        confirmed: 0,
        previous: '025e915dcf7ce855a5818f17c78f3bedc16bfa505aa8d27b26860fe875112e5e',
        transaction_mroot: '0000000000000000000000000000000000000000000000000000000000000000',
        action_mroot: 'd71fc942fb9fcd337692f037d3fb967d76ddd2b30bae40450d1feef50f56ceec',
        schedule_version: 245,
        new_producers: null,
        header_extensions: [],
        producer_signature: 'SIG_K1_JwDWGq1SxPHw5xTwUzZ1Hf4YCdvzsYvAoh9nNvGXjyXjk57pLb5fc8in3vop9h1mMdZtsRhEYa4bV9P4fMvHXcqiFjw83y',
        transactions: [],
        block_extensions: [],
        id: '025e915eff653f4ad408e1b36e40f6b4d842afde81672446f91ca1e615ebf03c',
        block_num: 39752030,
        ref_block_prefix: 3017869524,
    })
        .post('/v1/chain/get_account', { account_name: 'jzjkpn1bjnti' })
        .reply(200, {
        account_name: 'jzjkpn1bjnti',
        head_block_num: 39739576,
        head_block_time: '2019-07-18T16:08:34.500',
        privileged: false,
        last_code_update: '1970-01-01T00:00:00.000',
        created: '2019-07-18T12:52:10.000',
        core_liquid_balance: '99.0000 EOS',
        ram_quota: 9586,
        net_weight: 0,
        cpu_weight: 0,
        net_limit: {
            used: 161,
            available: 0,
            max: 0,
        },
        cpu_limit: {
            used: 419,
            available: 0,
            max: 0,
        },
        ram_usage: 3324,
        permissions: [
            {
                perm_name: 'active',
                parent: 'owner',
                required_auth: {
                    threshold: 2,
                    keys: [
                        {
                            key: 'EOS5ecwm5UH1b2ggGJTq5r1aqd1cgKsi3NUYPJbLakana57E1anP2',
                            weight: 1,
                        },
                        {
                            key: 'EOS5oyoziJUH2u3KJu9fUFmahrkMC1x86hdBs5768tA9N3R7zENHx',
                            weight: 1,
                        },
                        {
                            key: 'EOS6dZzCHfSVGGjJ9VegMpu9utsNERqrmnwoEntQcgfCUyyuciQm9',
                            weight: 1,
                        },
                    ],
                    accounts: [],
                    waits: [],
                },
            },
            {
                perm_name: 'owner',
                parent: '',
                required_auth: {
                    threshold: 2,
                    keys: [
                        {
                            key: 'EOS5ecwm5UH1b2ggGJTq5r1aqd1cgKsi3NUYPJbLakana57E1anP2',
                            weight: 1,
                        },
                        {
                            key: 'EOS5oyoziJUH2u3KJu9fUFmahrkMC1x86hdBs5768tA9N3R7zENHx',
                            weight: 1,
                        },
                        {
                            key: 'EOS6dZzCHfSVGGjJ9VegMpu9utsNERqrmnwoEntQcgfCUyyuciQm9',
                            weight: 1,
                        },
                    ],
                    accounts: [],
                    waits: [],
                },
            },
        ],
        total_resources: {
            owner: 'jzjkpn1bjnti',
            net_weight: '0.0000 EOS',
            cpu_weight: '0.0000 EOS',
            ram_bytes: 8186,
        },
        self_delegated_bandwidth: null,
        refund_request: null,
        voter_info: null,
    })
        .post('/v1/chain/get_account', { account_name: 'kiyjcn1ixftp' })
        .reply(200, {
        account_name: 'kiyjcn1ixftp',
        head_block_num: 39739505,
        head_block_time: '2019-07-18T16:07:59.000',
        privileged: false,
        last_code_update: '1970-01-01T00:00:00.000',
        created: '2019-07-18T15:57:05.500',
        core_liquid_balance: '100.0000 EOS',
        ram_quota: 9587,
        net_weight: 0,
        cpu_weight: 0,
        net_limit: {
            used: 0,
            available: 0,
            max: 0,
        },
        cpu_limit: {
            used: 0,
            available: 0,
            max: 0,
        },
        ram_usage: 3196,
        permissions: [
            {
                perm_name: 'active',
                parent: 'owner',
                required_auth: {
                    threshold: 2,
                    keys: [
                        {
                            key: 'EOS5sxRZCyaKAowNZBVrAvUHYQioMXf8Qru7XADoJwr53iFDJPsGC',
                            weight: 1,
                        },
                        {
                            key: 'EOS64hsH9DiP1eSQuYKEaFD5SQp4cLRPvTYaCUvV2AfcWBVy7CjjN',
                            weight: 1,
                        },
                        {
                            key: 'EOS741DEx6Gstbi2cdmQyjGrBi8rndGeSBw7hM5uYiKft2ptmKRgd',
                            weight: 1,
                        },
                    ],
                    accounts: [],
                    waits: [],
                },
            },
            {
                perm_name: 'owner',
                parent: '',
                required_auth: {
                    threshold: 2,
                    keys: [
                        {
                            key: 'EOS5sxRZCyaKAowNZBVrAvUHYQioMXf8Qru7XADoJwr53iFDJPsGC',
                            weight: 1,
                        },
                        {
                            key: 'EOS64hsH9DiP1eSQuYKEaFD5SQp4cLRPvTYaCUvV2AfcWBVy7CjjN',
                            weight: 1,
                        },
                        {
                            key: 'EOS741DEx6Gstbi2cdmQyjGrBi8rndGeSBw7hM5uYiKft2ptmKRgd',
                            weight: 1,
                        },
                    ],
                    accounts: [],
                    waits: [],
                },
            },
        ],
        total_resources: {
            owner: 'kiyjcn1ixftp',
            net_weight: '0.0000 EOS',
            cpu_weight: '0.0000 EOS',
            ram_bytes: 8187,
        },
        self_delegated_bandwidth: null,
        refund_request: null,
        voter_info: null,
    });
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3Zlcnktbm9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3YyL2xpYi9yZWNvdmVyeS1ub2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOztHQUVHO0FBQ0gsNkJBQTZCO0FBQzdCLDhDQUErQztBQUUvQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsR0FBRyxTQUFTLGVBQWU7SUFDdkQsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ3BFLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDVCxNQUFNLEVBQUUsY0FBYztRQUN0QixNQUFNLEVBQUU7WUFDTjtnQkFDRSxPQUFPLEVBQUUsb0NBQW9DO2dCQUM3QyxNQUFNLEVBQUUsSUFBSTtnQkFDWixZQUFZLEVBQUUsU0FBUztnQkFDdkIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsWUFBWSxFQUFFLElBQUk7YUFDbkI7U0FDRjtLQUNGLENBQUM7U0FDRCxLQUFLLENBQUMsR0FBRyxFQUFFO1FBQ1YsTUFBTSxFQUFFO1lBQ04sWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxvQ0FBb0M7Z0JBQzdDLE9BQU8sRUFBRSxZQUFZO2dCQUNyQixLQUFLLEVBQUUsT0FBTztnQkFDZCxlQUFlLEVBQUUsYUFBYTtnQkFDOUIsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsYUFBYSxFQUFFLGtFQUFrRTtnQkFDakYsaUJBQWlCLEVBQUUsTUFBTTtnQkFDekIsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsS0FBSyxFQUFFLGtFQUFrRTtnQkFDekUsWUFBWSxFQUFFO29CQUNaO3dCQUNFLEtBQUssRUFBRSxDQUFDO3dCQUNSLGVBQWUsRUFBRSxZQUFZO3dCQUM3QixTQUFTLEVBQUUsa0JBQWtCO3dCQUM3QixhQUFhLEVBQUUsa0VBQWtFO3dCQUNqRixpQkFBaUIsRUFBRSxNQUFNO3dCQUN6QixhQUFhLEVBQUU7NEJBQ2I7Z0NBQ0UsV0FB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RCxRQUFRLEVBQUUsRUFBRTtvQkFDWixLQUFLLEVBQUUsRUFBRTtpQkFDVjthQUNGO1NBQ0Y7UUFDRCxlQUFlLEVBQUU7WUFDZixLQUFLLEVBQUUsY0FBYztZQUNyQixVQUFVLEVBQUUsWUFBWTtZQUN4QixVQUFVLEVBQUUsWUFBWTtZQUN4QixTQUFTLEVBQUUsSUFBSTtTQUNoQjtRQUNELHdCQUF3QixFQUFFLElBQUk7UUFDOUIsY0FBYyxFQUFFLElBQUk7UUFDcEIsVUFBVSxFQUFFLElBQUk7S0FDakIsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0ICogYXMgbm9jayBmcm9tICdub2NrJztcbmltcG9ydCB7IEVudmlyb25tZW50cyB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbm1vZHVsZS5leHBvcnRzLm5vY2tYcnBSZWNvdmVyeSA9IGZ1bmN0aW9uIG5vY2tYcnBSZWNvdmVyeSgpIHtcbiAgbm9jaygnaHR0cHM6Ly9zLmFsdG5ldC5yaXBwbGV0ZXN0Lm5ldDo1MTIzNCcsIHsgYWxsb3dVbm1vY2tlZDogZmFsc2UgfSlcbiAgICAucG9zdCgnLycsIHtcbiAgICAgIG1ldGhvZDogJ2FjY291bnRfaW5mbycsXG4gICAgICBwYXJhbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFjY291bnQ6ICdyYUdaV1JrUkJVV2RRSnNLWUV6d1hKTmJDWk1UcVg1NmFBJyxcbiAgICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICAgICAgbGVkZ2VyX2luZGV4OiAnY3VycmVudCcsXG4gICAgICAgICAgcXVldWU6IHRydWUsXG4gICAgICAgICAgc2lnbmVyX2xpc3RzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIHJlc3VsdDoge1xuICAgICAgICBhY2NvdW50X2RhdGE6IHtcbiAgICAgICAgICBBY2NvdW50OiAncmFHWldSa1JCVVdkUUpzS1lFendYSk5iQ1pNVHFYNTZhQScsXG4gICAgICAgICAgQmFsYW5jZTogJzk5NDQwMDAwMDAnLFxuICAgICAgICAgIEZsYWdzOiAxMTc5NjQ4LFxuICAgICAgICAgIExlZGdlckVudHJ5VHlwZTogJ0FjY291bnRSb290JyxcbiAgICAgICAgICBPd25lckNvdW50OiA1LFxuICAgICAgICAgIFByZXZpb3VzVHhuSUQ6ICc4MjQ2MEU5RkFGMjRGNTMzODhEQzlDQkE5MTkzNEIzRjgyMTA3MTQ4Q0QyMEJEMjZFODBERjc3NDMyMzU0NUMzJyxcbiAgICAgICAgICBQcmV2aW91c1R4bkxnclNlcTogMzk2OTk2LFxuICAgICAgICAgIFNlcXVlbmNlOiA0LFxuICAgICAgICAgIGluZGV4OiAnQzY3NkQzMjRCQTUzRkVERjYwMUY3RUFGQkM4OERBQzVFNzQ0MEZGNDkxRUJDNTQwNjZFQ0RCNjFBMkIyRDFFQycsXG4gICAgICAgICAgc2lnbmVyX2xpc3RzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIEZsYWdzOiAwLFxuICAgICAgICAgICAgICBMZWRnZXJFbnRyeVR5cGU6ICdTaWduZXJMaXN0JyxcbiAgICAgICAgICAgICAgT3duZXJOb2RlOiAnMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgICAgICAgICAgIFByZXZpb3VzVHhuSUQ6ICcwRTlCRjJEQkFBMzY1MzlGQTRDREIzRkY4QUJGNURDOUE0Mzg1OUMzMzk1MzM4NUM5NDg2QUQ2M0U0NTFCMkZDJyxcbiAgICAgICAgICAgICAgUHJldmlvdXNUeG5MZ3JTZXE6IDM5Njk0MyxcbiAgICAgICAgICAgICAgU2lnbmVyRW50cmllczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIFNpZ25lckVudHJ5OiB7XG4gICAgICAgICAgICAgICAgICAgIEFjY291bnQ6ICdyYVNZYUJUZmJlQVJSZGFjR0JiczV0akE3WGt5QjFSQzh4JyxcbiAgICAgICAgICAgICAgICAgICAgU2lnbmVyV2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIFNpZ25lckVudHJ5OiB7XG4gICAgICAgICAgICAgICAgICAgIEFjY291bnQ6ICdyR2V2Tjg3UnBXQmJkTHhLQ0Y0RkFxV2dSb1N5TUpBODFmJyxcbiAgICAgICAgICAgICAgICAgICAgU2lnbmVyV2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIFNpZ25lckVudHJ5OiB7XG4gICAgICAgICAgICAgICAgICAgIEFjY291bnQ6ICdyR21RSHd2YjVTWlJieWhwNEpCSGRwUnpTbWdxQUR4UGJFJyxcbiAgICAgICAgICAgICAgICAgICAgU2lnbmVyV2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBTaWduZXJMaXN0SUQ6IDAsXG4gICAgICAgICAgICAgIFNpZ25lclF1b3J1bTogMixcbiAgICAgICAgICAgICAgaW5kZXg6ICdBMzZBN0VENjEwOEZGN0Y4NzFDMEVDM0NGNTczRkUyM0NDOTc4MDQzNkQ2NEEyRUUwNjlBOEYyN0U4RDQwNDcxJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgbGVkZ2VyX2N1cnJlbnRfaW5kZXg6IDM5NzEzOCxcbiAgICAgICAgcXVldWVfZGF0YToge1xuICAgICAgICAgIHR4bl9jb3VudDogMCxcbiAgICAgICAgfSxcbiAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXG4gICAgICAgIHZhbGlkYXRlZDogZmFsc2UsXG4gICAgICB9LFxuICAgIH0pXG4gICAgLnBvc3QoJy8nLCB7IG1ldGhvZDogJ2ZlZScgfSlcbiAgICAucmVwbHkoMjAwLCB7XG4gICAgICByZXN1bHQ6IHtcbiAgICAgICAgY3VycmVudF9sZWRnZXJfc2l6ZTogJzAnLFxuICAgICAgICBjdXJyZW50X3F1ZXVlX3NpemU6ICcwJyxcbiAgICAgICAgZHJvcHM6IHtcbiAgICAgICAgICBiYXNlX2ZlZTogJzEwJyxcbiAgICAgICAgICBtZWRpYW5fZmVlOiAnNTAwMCcsXG4gICAgICAgICAgbWluaW11bV9mZWU6ICcxMCcsXG4gICAgICAgICAgb3Blbl9sZWRnZXJfZmVlOiAnMTAnLFxuICAgICAgICB9LFxuICAgICAgICBleHBlY3RlZF9sZWRnZXJfc2l6ZTogJzUxJyxcbiAgICAgICAgbGVkZ2VyX2N1cnJlbnRfaW5kZXg6IDM5NzEzOCxcbiAgICAgICAgbGV2ZWxzOiB7XG4gICAgICAgICAgbWVkaWFuX2xldmVsOiAnMTI4MDAwJyxcbiAgICAgICAgICBtaW5pbXVtX2xldmVsOiAnMjU2JyxcbiAgICAgICAgICBvcGVuX2xlZGdlcl9sZXZlbDogJzI1NicsXG4gICAgICAgICAgcmVmZXJlbmNlX2xldmVsOiAnMjU2JyxcbiAgICAgICAgfSxcbiAgICAgICAgbWF4X3F1ZXVlX3NpemU6ICcxMDIwJyxcbiAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXG4gICAgICB9LFxuICAgIH0pXG4gICAgLnBvc3QoJy8nLCB7IG1ldGhvZDogJ3NlcnZlcl9pbmZvJyB9KVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIHJlc3VsdDoge1xuICAgICAgICBpbmZvOiB7XG4gICAgICAgICAgYnVpbGRfdmVyc2lvbjogJzAuNzAuMScsXG4gICAgICAgICAgY29tcGxldGVfbGVkZ2VyczogJzM4Njk2Ny0zOTcxMzcnLFxuICAgICAgICAgIGhvc3RpZDogJ0hJJyxcbiAgICAgICAgICBpb19sYXRlbmN5X21zOiAxLFxuICAgICAgICAgIGxhc3RfY2xvc2U6IHtcbiAgICAgICAgICAgIGNvbnZlcmdlX3RpbWVfczogMS45OTksXG4gICAgICAgICAgICBwcm9wb3NlcnM6IDQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2FkX2ZhY3RvcjogMSxcbiAgICAgICAgICBwZWVyczogNCxcbiAgICAgICAgICBwdWJrZXlfbm9kZTogJ245S01tWnc4NWQ1ZXJrYVR2NjJWejZTYkRKU3llaWhBRUIzanduYjNCcW5yMkF5ZFJWZXAnLFxuICAgICAgICAgIHNlcnZlcl9zdGF0ZTogJ3Byb3Bvc2luZycsXG4gICAgICAgICAgc3RhdGVfYWNjb3VudGluZzoge1xuICAgICAgICAgICAgY29ubmVjdGVkOiB7XG4gICAgICAgICAgICAgIGR1cmF0aW9uX3VzOiAnNDk5OTk0MScsXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25zOiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2Nvbm5lY3RlZDoge1xuICAgICAgICAgICAgICBkdXJhdGlvbl91czogJzEyMDI3MTInLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uczogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmdWxsOiB7XG4gICAgICAgICAgICAgIGR1cmF0aW9uX3VzOiAnOTQwNjQxNzU4NjcnLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uczogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzeW5jaW5nOiB7XG4gICAgICAgICAgICAgIGR1cmF0aW9uX3VzOiAnNjExNjA5NicsXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25zOiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRyYWNraW5nOiB7XG4gICAgICAgICAgICAgIGR1cmF0aW9uX3VzOiAnMycsXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25zOiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHVwdGltZTogOTQwNzcsXG4gICAgICAgICAgdmFsaWRhdGVkX2xlZGdlcjoge1xuICAgICAgICAgICAgYWdlOiAzLFxuICAgICAgICAgICAgYmFzZV9mZWVfeHJwOiAwLjAwMDAxLFxuICAgICAgICAgICAgaGFzaDogJzkxOEQzMjZEMjI0RjhGNDlCMDdCMDJDRDBBMjIwN0I3MjM5QkJGQTgyNENGNTEyRjhEMUQ5REJDQURDMTE1RTUnLFxuICAgICAgICAgICAgcmVzZXJ2ZV9iYXNlX3hycDogMjAsXG4gICAgICAgICAgICByZXNlcnZlX2luY194cnA6IDUsXG4gICAgICAgICAgICBzZXE6IDM5NzEzNyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRpb25fcXVvcnVtOiA0LFxuICAgICAgICB9LFxuICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgIH0sXG4gICAgfSlcbiAgICAucG9zdCgnLycsIHtcbiAgICAgIG1ldGhvZDogJ2FjY291bnRfbGluZXMnLFxuICAgICAgcGFyYW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhY2NvdW50OiAncmFHWldSa1JCVVdkUUpzS1lFendYSk5iQ1pNVHFYNTZhQScsXG4gICAgICAgICAgbGVkZ2VyX2luZGV4OiAndmFsaWRhdGVkJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcbiAgICAucmVwbHkoMjAwLCB7XG4gICAgICByZXN1bHQ6IHtcbiAgICAgICAgYWNjb3VudDogJ3JNZmljemZ3NHQ1aUd1OWhoQjIzZUt3RGpNODc5dkpXVFInLFxuICAgICAgICBsZWRnZXJfaGFzaDogJ0U2RjM4RDFEN0I5NDE1M0JGN0ZGQzhEOENDMURGNTdENTcxNTFEMjZGQzJFQjc2NDdCNTYzMTc4NkI5NTVFRkYnLFxuICAgICAgICBsZWRnZXJfaW5kZXg6IDE4NDg5NjQsXG4gICAgICAgIGxpbmVzOiBbXSxcbiAgICAgICAgdmFsaWRhdGVkOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KTtcbn07XG5cbmNvbnN0IG5vY2tFdGhEYXRhOiBhbnlbXSA9IFtcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbW9kdWxlOiAnYWNjb3VudCcsXG4gICAgICBhY3Rpb246ICd0eGxpc3QnLFxuICAgICAgYWRkcmVzczogJzB4NzRjMjEzN2Q1NGIwZmM5ZjkwN2UxM2YxNGUwZGQxODQ4NWZlZTkyNCcsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgc3RhdHVzOiAnMCcsXG4gICAgICBtZXNzYWdlOiAnTm8gdHJhbnNhY3Rpb25zIGZvdW5kJyxcbiAgICAgIHJlc3VsdDogW10sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbW9kdWxlOiAnYWNjb3VudCcsXG4gICAgICBhY3Rpb246ICdiYWxhbmNlJyxcbiAgICAgIGFkZHJlc3M6ICcweDc0YzIxMzdkNTRiMGZjOWY5MDdlMTNmMTRlMGRkMTg0ODVmZWU5MjQnLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHN0YXR1czogJzEnLFxuICAgICAgbWVzc2FnZTogJ09LJyxcbiAgICAgIHJlc3VsdDogJzEwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbW9kdWxlOiAnYWNjb3VudCcsXG4gICAgICBhY3Rpb246ICdiYWxhbmNlJyxcbiAgICAgIGFkZHJlc3M6ICcweDVkZjVhOTZiNDc4YmIxODA4MTQwZDg3MDcyMTQzZTYwMjYyZTg2NzAnLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHN0YXR1czogJzEnLFxuICAgICAgbWVzc2FnZTogJ09LJyxcbiAgICAgIHJlc3VsdDogJzIyMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBwYXJhbXM6IHtcbiAgICAgIG1vZHVsZTogJ2FjY291bnQnLFxuICAgICAgYWN0aW9uOiAndHhsaXN0JyxcbiAgICAgIGFkZHJlc3M6ICcweGJhNmQ5ZDgyY2YyOTIwYzU0NGI4MzRiNzJmNGM2ZDExYTNlZjNkZTYnLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHN0YXR1czogJzAnLFxuICAgICAgbWVzc2FnZTogJ05vIHRyYW5zYWN0aW9ucyBmb3VuZCcsXG4gICAgICByZXN1bHQ6IFtdLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBwYXJhbXM6IHtcbiAgICAgIG1vZHVsZTogJ2FjY291bnQnLFxuICAgICAgYWN0aW9uOiAnYmFsYW5jZScsXG4gICAgICBhZGRyZXNzOiAnMHhiYTZkOWQ4MmNmMjkyMGM1NDRiODM0YjcyZjRjNmQxMWEzZWYzZGU2JyxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBzdGF0dXM6ICcxJyxcbiAgICAgIG1lc3NhZ2U6ICdPSycsXG4gICAgICByZXN1bHQ6ICcwJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgICAgIGFjdGlvbjogJ3R4bGlzdCcsXG4gICAgICBhZGRyZXNzOiAnMHg3NGMyMTM3ZDU0YjBmYzlmOTA3ZTEzZjE0ZTBkZDE4NDg1ZmVlOTI0JyxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBzdGF0dXM6ICcwJyxcbiAgICAgIG1lc3NhZ2U6ICdObyB0cmFuc2FjdGlvbnMgZm91bmQnLFxuICAgICAgcmVzdWx0OiBbXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgICAgIGFjdGlvbjogJ2JhbGFuY2UnLFxuICAgICAgYWRkcmVzczogJzB4NzRjMjEzN2Q1NGIwZmM5ZjkwN2UxM2YxNGUwZGQxODQ4NWZlZTkyNCcsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgc3RhdHVzOiAnMScsXG4gICAgICBtZXNzYWdlOiAnT0snLFxuICAgICAgcmVzdWx0OiAnMTAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgICAgIGFjdGlvbjogJ2JhbGFuY2UnLFxuICAgICAgYWRkcmVzczogJzB4NWRmNWE5NmI0NzhiYjE4MDgxNDBkODcwNzIxNDNlNjAyNjJlODY3MCcsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgc3RhdHVzOiAnMScsXG4gICAgICBtZXNzYWdlOiAnT0snLFxuICAgICAgcmVzdWx0OiAnMjIwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbW9kdWxlOiAncHJveHknLFxuICAgICAgYWN0aW9uOiAnZXRoX2NhbGwnLFxuICAgICAgdG86ICcweDVkZjVhOTZiNDc4YmIxODA4MTQwZDg3MDcyMTQzZTYwMjYyZTg2NzAnLFxuICAgICAgZGF0YTogJ2EwYjc5NjdiJyxcbiAgICAgIHRhZzogJ2xhdGVzdCcsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgICByZXN1bHQ6ICcweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEnLFxuICAgICAgaWQ6IDEsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbW9kdWxlOiAnYWNjb3VudCcsXG4gICAgICBhY3Rpb246ICdiYWxhbmNlJyxcbiAgICAgIGFkZHJlc3M6ICcweGExYTg4YTUwMjI3NDA3M2IxYmM0ZmUwNmVhMGY1ZmU3N2UxNTFiOTEnLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHN0YXR1czogJzEnLFxuICAgICAgbWVzc2FnZTogJ09LJyxcbiAgICAgIHJlc3VsdDogJzIwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgICAgIGFjdGlvbjogJ3R4bGlzdCcsXG4gICAgICBhZGRyZXNzOiAnMHhhMWE4OGE1MDIyNzQwNzNiMWJjNGZlMDZlYTBmNWZlNzdlMTUxYjkxJyxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBzdGF0dXM6ICcxJyxcbiAgICAgIG1lc3NhZ2U6ICdPSycsXG4gICAgICByZXN1bHQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJsb2NrTnVtYmVyOiAnMjY3NDUzNjQnLFxuICAgICAgICAgIHRpbWVTdGFtcDogJzE2Mjg3Nzg2NzYnLFxuICAgICAgICAgIGhhc2g6ICcweDQxZDU4OWI3YjEyYWJmYWQ0OTc1ZjQyZTYyZDNiOTZkZTFlYjljYTQ3N2Y2MmI0ZDVhNDliMTQwYzNmYjZhMjEnLFxuICAgICAgICAgIG5vbmNlOiAnNCcsXG4gICAgICAgICAgYmxvY2tIYXNoOiAnMHg5MDhjMDdjYzE0MjVlOTBhMGQ1OGU1Y2MxYjEwOTUxMGUxNDA5N2UwNGFhZTc0MWY4ZGU4NzRiZmQwZjdkODdiJyxcbiAgICAgICAgICB0cmFuc2FjdGlvbkluZGV4OiAnMicsXG4gICAgICAgICAgZnJvbTogJzB4MWNlNDNmMjE4NWRlNTczNGQzMDA0ZGQwMjgzZjU4ZWFlYzc4N2U0YScsXG4gICAgICAgICAgdG86ICcweGExYTg4YTUwMjI3NDA3M2IxYmM0ZmUwNmVhMGY1ZmU3N2UxNTFiOTEnLFxuICAgICAgICAgIHZhbHVlOiAnMjAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgIGdhczogJzIxMDAwJyxcbiAgICAgICAgICBnYXNQcmljZTogJzEwMDAwMDAwMDAnLFxuICAgICAgICAgIGlzRXJyb3I6ICcwJyxcbiAgICAgICAgICB0eHJlY2VpcHRfc3RhdHVzOiAnMScsXG4gICAgICAgICAgaW5wdXQ6ICcweCcsXG4gICAgICAgICAgY29udHJhY3RBZGRyZXNzOiAnJyxcbiAgICAgICAgICBjdW11bGF0aXZlR2FzVXNlZDogJzM1NzUzNicsXG4gICAgICAgICAgZ2FzVXNlZDogJzIxMDAwJyxcbiAgICAgICAgICBjb25maXJtYXRpb25zOiAnOTU5JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbW9kdWxlOiAnYWNjb3VudCcsXG4gICAgICBhY3Rpb246ICd0eGxpc3QnLFxuICAgICAgYWRkcmVzczogJzB4YTFhODhhNTAyMjc0MDczYjFiYzRmZTA2ZWEwZjVmZTc3ZTE1MWI5MScsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgc3RhdHVzOiAnMScsXG4gICAgICBtZXNzYWdlOiAnT0snLFxuICAgICAgcmVzdWx0OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBibG9ja051bWJlcjogJzI2NzQ1MzY0JyxcbiAgICAgICAgICB0aW1lU3RhbXA6ICcxNjI4Nzc4Njc2JyxcbiAgICAgICAgICBoYXNoOiAnMHg0MWQ1ODliN2IxMmFiZmFkNDk3NWY0MmU2MmQzYjk2ZGUxZWI5Y2E0NzdmNjJiNGQ1YTQ5YjE0MGMzZmI2YTIxJyxcbiAgICAgICAgICBub25jZTogJzQnLFxuICAgICAgICAgIGJsb2NrSGFzaDogJzB4OTA4YzA3Y2MxNDI1ZTkwYTBkNThlNWNjMWIxMDk1MTBlMTQwOTdlMDRhYWU3NDFmOGRlODc0YmZkMGY3ZDg3YicsXG4gICAgICAgICAgdHJhbnNhY3Rpb25JbmRleDogJzInLFxuICAgICAgICAgIGZyb206ICcweDFjZTQzZjIxODVkZTU3MzRkMzAwNGRkMDI4M2Y1OGVhZWM3ODdlNGEnLFxuICAgICAgICAgIHRvOiAnMHhhMWE4OGE1MDIyNzQwNzNiMWJjNGZlMDZlYTBmNWZlNzdlMTUxYjkxJyxcbiAgICAgICAgICB2YWx1ZTogJzIwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAgICAgICBnYXM6ICcyMTAwMCcsXG4gICAgICAgICAgZ2FzUHJpY2U6ICcxMDAwMDAwMDAwJyxcbiAgICAgICAgICBpc0Vycm9yOiAnMCcsXG4gICAgICAgICAgdHhyZWNlaXB0X3N0YXR1czogJzEnLFxuICAgICAgICAgIGlucHV0OiAnMHgnLFxuICAgICAgICAgIGNvbnRyYWN0QWRkcmVzczogJycsXG4gICAgICAgICAgY3VtdWxhdGl2ZUdhc1VzZWQ6ICczNTc1MzYnLFxuICAgICAgICAgIGdhc1VzZWQ6ICcyMTAwMCcsXG4gICAgICAgICAgY29uZmlybWF0aW9uczogJzk1OScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBwYXJhbXM6IHtcbiAgICAgIG1vZHVsZTogJ2FjY291bnQnLFxuICAgICAgYWN0aW9uOiAndG9rZW5iYWxhbmNlJyxcbiAgICAgIGNvbnRyYWN0YWRkcmVzczogJzB4NGY5NmZlM2I3YTZjZjk3MjVmNTlkMzUzZjcyM2MxYmRiNjRjYTZhYScsXG4gICAgICBhZGRyZXNzOiAnMHhkZjA3MTE3NzA1YTlmOGRjNGMyYTc4ZGU2NmI3ZjE3OTdkYmE5ZDRlJyxcbiAgICAgIHRhZzogJ2xhdGVzdCcsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgc3RhdHVzOiAnMScsXG4gICAgICBtZXNzYWdlOiAnT0snLFxuICAgICAgcmVzdWx0OiAnMTAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbW9kdWxlOiAncHJveHknLFxuICAgICAgYWN0aW9uOiAnZXRoX2NhbGwnLFxuICAgICAgdG86ICcweGRmMDcxMTc3MDVhOWY4ZGM0YzJhNzhkZTY2YjdmMTc5N2RiYTlkNGUnLFxuICAgICAgZGF0YTogJ2EwYjc5NjdiJyxcbiAgICAgIHRhZzogJ2xhdGVzdCcsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgICByZXN1bHQ6ICcweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJhN2YnLFxuICAgICAgaWQ6IDEsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbW9kdWxlOiAnYWNjb3VudCcsXG4gICAgICBhY3Rpb246ICdiYWxhbmNlJyxcbiAgICAgIGFkZHJlc3M6ICcweGRmMDcxMTc3MDVhOWY4ZGM0YzJhNzhkZTY2YjdmMTc5N2RiYTlkNGUnLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHN0YXR1czogJzEnLFxuICAgICAgbWVzc2FnZTogJ09LJyxcbiAgICAgIHJlc3VsdDogJzk5OTk5OTk5OTk5OTk5OTk5MjgnLFxuICAgIH0sXG4gIH0sXG5dO1xuXG5tb2R1bGUuZXhwb3J0cy5ub2NrRXRoTGlrZVJlY292ZXJ5ID0gZnVuY3Rpb24gKGJpdGdvLCBub2NrRGF0YSA9IG5vY2tFdGhEYXRhKSB7XG4gIGxldCBhcGlLZXk7XG4gIGlmIChFbnZpcm9ubWVudHNbYml0Z28uZ2V0RW52KCldLmV0aGVyc2NhbkFwaVRva2VuKSB7XG4gICAgYXBpS2V5ID0gRW52aXJvbm1lbnRzW2JpdGdvLmdldEVudigpXS5ldGhlcnNjYW5BcGlUb2tlbjtcbiAgfVxuXG4gIG5vY2tEYXRhLmZvckVhY2goKGRhdGEpID0+IHtcbiAgICBpZiAoYXBpS2V5KSB7XG4gICAgICBkYXRhLnBhcmFtcy5hcGlLZXkgPSBhcGlLZXk7XG4gICAgfVxuICAgIG5vY2soJ2h0dHBzOi8vYXBpLWhvbGVza3kuZXRoZXJzY2FuLmlvLycpLmdldCgnL2FwaScpLnF1ZXJ5KGRhdGEucGFyYW1zKS5yZXBseSgyMDAsIGRhdGEucmVzcG9uc2UpO1xuICAgIG5vY2soJ2h0dHBzOi8vYXBpLWFtb3kucG9seWdvbnNjYW4uY29tJykuZ2V0KCcvYXBpJykucXVlcnkoZGF0YS5wYXJhbXMpLnJlcGx5KDIwMCwgZGF0YS5yZXNwb25zZSk7XG4gICAgbm9jaygnaHR0cHM6Ly9hcGktdGVzdG5ldC5ic2NzY2FuLmNvbScpLmdldCgnL2FwaScpLnF1ZXJ5KGRhdGEucGFyYW1zKS5yZXBseSgyMDAsIGRhdGEucmVzcG9uc2UpO1xuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLm5vY2tFdGhlcnNjYW5SYXRlTGltaXRFcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgc3RhdHVzOiAnMCcsXG4gICAgbWVzc2FnZTogJ05PVE9LJyxcbiAgICByZXN1bHQ6ICdNYXggcmF0ZSBsaW1pdCByZWFjaGVkLCByYXRlIGxpbWl0IG9mIDMvMXNlYyBhcHBsaWVkXCInLFxuICB9O1xuXG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgICBhY3Rpb246ICd0eGxpc3QnLFxuICAgIGFkZHJlc3M6ICcweDc0YzIxMzdkNTRiMGZjOWY5MDdlMTNmMTRlMGRkMTg0ODVmZWU5MjQnLFxuICB9O1xuXG4gIG5vY2soJ2h0dHBzOi8vYXBpLWhvbGVza3kuZXRoZXJzY2FuLmlvJykuZ2V0KCcvYXBpJykucXVlcnkocGFyYW1zKS5yZXBseSgyMDAsIHJlc3BvbnNlKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLm5vY2tYbG1SZWNvdmVyeSA9IGZ1bmN0aW9uICgpIHtcbiAgbm9jaygnaHR0cHM6Ly9ob3Jpem9uLXRlc3RuZXQuc3RlbGxhci5vcmcnKVxuICAgIC5nZXQoJy9hY2NvdW50cy9HQUdDUUxVR01YNzZYQzI0SlJDUkpXT0hYSzIzT05VUkg0NDMzSk9FUFU2Q0g3WjQ0Q0NZVUNFTCcpXG4gICAgLnJlcGx5KDQwNCwge1xuICAgICAgc3RhdHVzOiA0MDQsXG4gICAgfSlcbiAgICAuZ2V0KCcvYWNjb3VudHMvR0FTVzI3N1MyWk9FN0g3QTVFUTVINUFLTFA2VUE2WjVBS09TV1Y2QVJCRUdUU0lHTVpNQzdBSVonKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGJhbGFuY2U6ICcxMCcsXG4gICAgfSlcbiAgICAuZ2V0KCcvYWNjb3VudHMvR0FVQUdUTDNOQlo3TlAzVUlNWkNWSllNNk8yTktVUDZYUlRLNEU1VlpEVklRWDNDQllJVk1ESUInKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGlkOiAnR0FVQUdUTDNOQlo3TlAzVUlNWkNWSllNNk8yTktVUDZYUlRLNEU1VlpEVklRWDNDQllJVk1ESUInLFxuICAgICAgcGFnaW5nX3Rva2VuOiAnJyxcbiAgICAgIGFjY291bnRfaWQ6ICdHQVVBR1RMM05CWjdOUDNVSU1aQ1ZKWU02TzJOS1VQNlhSVEs0RTVWWkRWSVFYM0NCWUlWTURJQicsXG4gICAgICBzZXF1ZW5jZTogJzQ3MzM5NDU1OTU0MDI2NDk3JyxcbiAgICAgIHN1YmVudHJ5X2NvdW50OiAzLFxuICAgICAgdGhyZXNob2xkczoge1xuICAgICAgICBsb3dfdGhyZXNob2xkOiAxLFxuICAgICAgICBtZWRfdGhyZXNob2xkOiAyLFxuICAgICAgICBoaWdoX3RocmVzaG9sZDogMyxcbiAgICAgIH0sXG4gICAgICBmbGFnczoge1xuICAgICAgICBhdXRoX3JlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgYXV0aF9yZXZvY2FibGU6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGJhbGFuY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiYWxhbmNlOiAnOS45OTk5NjAwJyxcbiAgICAgICAgICBidXlpbmdfbGlhYmlsaXRpZXM6ICcwLjAwMDAwMDAnLFxuICAgICAgICAgIHNlbGxpbmdfbGlhYmlsaXRpZXM6ICcwLjAwMDAwMDAnLFxuICAgICAgICAgIGFzc2V0X3R5cGU6ICduYXRpdmUnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHNpZ25lcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY19rZXk6ICdHQk5LNEZKTzZGRFFOQlZMVVA3TUlDRUpVVklOUE5KWkNERFRUWVMzTFZGQzZKN0xLRVhMT0JLTScsXG4gICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIGtleTogJ0dCTks0RkpPNkZEUU5CVkxVUDdNSUNFSlVWSU5QTkpaQ0REVFRZUzNMVkZDNko3TEtFWExPQktNJyxcbiAgICAgICAgICB0eXBlOiAnZWQyNTUxOV9wdWJsaWNfa2V5JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY19rZXk6ICdHQ0JBQkpQRTNVVFozSlBVRUlaRVhBUVE1Q01OWDVVUFlLT0I3SEhYU0hCQ0lHRDdWVjY0SDZLVScsXG4gICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIGtleTogJ0dDQkFCSlBFM1VUWjNKUFVFSVpFWEFRUTVDTU5YNVVQWUtPQjdISFhTSEJDSUdEN1ZWNjRINktVJyxcbiAgICAgICAgICB0eXBlOiAnZWQyNTUxOV9wdWJsaWNfa2V5JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY19rZXk6ICdHQlNLWk03SEc0UzJXNE40SDY1WEhUR1M3MjRIUUE3RUZNU1NDVkxQV1c1M1pGTDZTTlZGSktKTycsXG4gICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIGtleTogJ0dCU0taTTdIRzRTMlc0TjRINjVYSFRHUzcyNEhRQTdFRk1TU0NWTFBXVzUzWkZMNlNOVkZKS0pPJyxcbiAgICAgICAgICB0eXBlOiAnZWQyNTUxOV9wdWJsaWNfa2V5JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY19rZXk6ICdHQVVBR1RMM05CWjdOUDNVSU1aQ1ZKWU02TzJOS1VQNlhSVEs0RTVWWkRWSVFYM0NCWUlWTURJQicsXG4gICAgICAgICAgd2VpZ2h0OiAwLFxuICAgICAgICAgIGtleTogJ0dBVUFHVEwzTkJaN05QM1VJTVpDVkpZTTZPMk5LVVA2WFJUSzRFNVZaRFZJUVgzQ0JZSVZNRElCJyxcbiAgICAgICAgICB0eXBlOiAnZWQyNTUxOV9wdWJsaWNfa2V5JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBkYXRhOiB7fSxcbiAgICB9KVxuICAgIC5nZXQoJy9sZWRnZXJzJylcbiAgICAucXVlcnkodHJ1ZSlcbiAgICAudGltZXMoMilcbiAgICAucmVwbHkoMjAwLCB7XG4gICAgICBfbGlua3M6IHtcbiAgICAgICAgc2VsZjoge1xuICAgICAgICAgIGhyZWY6ICdodHRwczovL2hvcml6b24tdGVzdG5ldC5zdGVsbGFyLm9yZy9sZWRnZXJzP2M9MC4zNzY0MzEwMDYxMzcxODAwNiZjdXJzb3I9JmxpbWl0PTEmb3JkZXI9ZGVzYycsXG4gICAgICAgIH0sXG4gICAgICAgIG5leHQ6IHtcbiAgICAgICAgICBocmVmOiAnaHR0cHM6Ly9ob3Jpem9uLXRlc3RuZXQuc3RlbGxhci5vcmcvbGVkZ2Vycz9jPTAuMzc2NDMxMDA2MTM3MTgwMDYmY3Vyc29yPTQ4NDE5NjUzMTEzODcyMzg0JmxpbWl0PTEmb3JkZXI9ZGVzYycsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXY6IHtcbiAgICAgICAgICBocmVmOiAnaHR0cHM6Ly9ob3Jpem9uLXRlc3RuZXQuc3RlbGxhci5vcmcvbGVkZ2Vycz9jPTAuMzc2NDMxMDA2MTM3MTgwMDYmY3Vyc29yPTQ4NDE5NjUzMTEzODcyMzg0JmxpbWl0PTEmb3JkZXI9YXNjJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBfZW1iZWRkZWQ6IHtcbiAgICAgICAgcmVjb3JkczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIF9saW5rczoge1xuICAgICAgICAgICAgICBzZWxmOiB7XG4gICAgICAgICAgICAgICAgaHJlZjogJ2h0dHBzOi8vaG9yaXpvbi10ZXN0bmV0LnN0ZWxsYXIub3JnL2xlZGdlcnMvMTEyNzM1NzknLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0cmFuc2FjdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBocmVmOiAnaHR0cHM6Ly9ob3Jpem9uLXRlc3RuZXQuc3RlbGxhci5vcmcvbGVkZ2Vycy8xMTI3MzU3OS90cmFuc2FjdGlvbnN7P2N1cnNvcixsaW1pdCxvcmRlcn0nLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uczoge1xuICAgICAgICAgICAgICAgIGhyZWY6ICdodHRwczovL2hvcml6b24tdGVzdG5ldC5zdGVsbGFyLm9yZy9sZWRnZXJzLzExMjczNTc5L29wZXJhdGlvbnN7P2N1cnNvcixsaW1pdCxvcmRlcn0nLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcGF5bWVudHM6IHtcbiAgICAgICAgICAgICAgICBocmVmOiAnaHR0cHM6Ly9ob3Jpem9uLXRlc3RuZXQuc3RlbGxhci5vcmcvbGVkZ2Vycy8xMTI3MzU3OS9wYXltZW50c3s/Y3Vyc29yLGxpbWl0LG9yZGVyfScsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVkOiB0cnVlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlZmZlY3RzOiB7XG4gICAgICAgICAgICAgICAgaHJlZjogJ2h0dHBzOi8vaG9yaXpvbi10ZXN0bmV0LnN0ZWxsYXIub3JnL2xlZGdlcnMvMTEyNzM1NzkvZWZmZWN0c3s/Y3Vyc29yLGxpbWl0LG9yZGVyfScsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVkOiB0cnVlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlkOiAnNWZhYjE3MGE0N2FmYTE1Y2MxMzA3OTBmOGMzYmNiODQ2ZmEyOTViMWZhNTExMzk0MzdjNGQxMjA4NzhlODUwZicsXG4gICAgICAgICAgICBwYWdpbmdfdG9rZW46ICc0ODQxOTY1MzExMzg3MjM4NCcsXG4gICAgICAgICAgICBoYXNoOiAnNWZhYjE3MGE0N2FmYTE1Y2MxMzA3OTBmOGMzYmNiODQ2ZmEyOTViMWZhNTExMzk0MzdjNGQxMjA4NzhlODUwZicsXG4gICAgICAgICAgICBwcmV2X2hhc2g6ICc1ZWZlNmYzMjY2MmFmOGFiMmQ4YTVmODk4NGMwMjdhZDMzMGYxODFiZjViOWUzODEyZDVhMDhmNjJlMmNiOTc4JyxcbiAgICAgICAgICAgIHNlcXVlbmNlOiAxMTI3MzU3OSxcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uX2NvdW50OiAwLFxuICAgICAgICAgICAgb3BlcmF0aW9uX2NvdW50OiAwLFxuICAgICAgICAgICAgY2xvc2VkX2F0OiAnMjAxOC0wOS0yN1QyMjoxMzozNVonLFxuICAgICAgICAgICAgdG90YWxfY29pbnM6ICcxMDQyODQ3MTUyNTUuNzQyMDAyOCcsXG4gICAgICAgICAgICBmZWVfcG9vbDogJzE3MDg4ODA4NzMuNjc2OTY4NycsXG4gICAgICAgICAgICBiYXNlX2ZlZV9pbl9zdHJvb3BzOiAxMDAsXG4gICAgICAgICAgICBiYXNlX3Jlc2VydmVfaW5fc3Ryb29wczogNTAwMDAwMCxcbiAgICAgICAgICAgIG1heF90eF9zZXRfc2l6ZTogNTAsXG4gICAgICAgICAgICBwcm90b2NvbF92ZXJzaW9uOiAxMCxcbiAgICAgICAgICAgIGhlYWRlcl94ZHI6XG4gICAgICAgICAgICAgICdBQUFBQ2w3K2J6Sm1LdmlyTFlwZmlZVEFKNjB6RHhnYjlibmpnUzFhQ1BZdUxMbDROQjRNRnBTMGpRazhYM1V0OTNjMlE3Y1lFRVduaFozdHRlTWhabnp0U004QUFBQUFXNjFXRHdBQUFBQUFBQUFBTHpXdmlKeFZEVit3cnpWblM0WW9JOHhJMDUwYUtuQWZuZXkrdFp4ZmNZMmFGeXNERlZNRjE2Y3FnWmp3OHlpeXp5ZmMxdTBlcXBMdExyWnlZRWFtL0FDc0JXc09lTy8xd3padC9BQTh0aTVXWThhWEFBQUEzUUFBQUFBQUM0U1JBQUFBWkFCTVMwQUFBQUF5dWdsQnNMRnlHbUJPcUoyNTBmRGE3NmJZNS9jMXY5VEJRbDBBTGh6eDJHNnZYY2RaU204YW9DQlBXSFpCcks3R2ZwSGE0RGJpRHFJYXY0eXpqYW5JVVNKOUNXS2xYUVhIV2ZmOXlLVWxwYVZKSnk0VGNFTEpWM3cwbmx3YU5iUnpMZitKd0dWWWI2Qm5CMkdpWkVTdmYxeUVpYnZsVTIxWlZlRUJzY2Nia2c0QUFBQUEnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMubm9ja1Ryb25SZWNvdmVyeSA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gZnVsbCBub2RlIC0gc2VuZFRyeCBmcm9tIHRyb253ZWIsIGJ1aWxkIHRyYW5zYWN0aW9uIGNhbGxcbiAgbm9jaygnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJylcbiAgICAucG9zdCgnL3dhbGxldC9jcmVhdGV0cmFuc2FjdGlvbicpXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICB0eElEOiAnMzEyYzkyNTQ2NjdiN2RjNDgyM2Y2OWU5ZTIwZWQ1NWMyZmI4MWYwNDIxZjk1NmM1ZTg1NjgwZDA5OGU3NWFjOCcsXG4gICAgICByYXdfZGF0YToge1xuICAgICAgICBjb250cmFjdDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGFtb3VudDogMTAwMDAwMDAsXG4gICAgICAgICAgICAgICAgb3duZXJfYWRkcmVzczogJzQxZTdlMTFkZjJjNTcwNDg4OGMzY2I2M2ZiNDNhOTQ5OGJkMTgxMmNiMicsXG4gICAgICAgICAgICAgICAgdG9fYWRkcmVzczogJzQxZjVmNDE0ZDQ0N2FhZmU3MGJiOWI5ZDkzOTEyY2JjNGM1NGYwYzAxNCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHR5cGVfdXJsOiAndHlwZS5nb29nbGVhcGlzLmNvbS9wcm90b2NvbC5UcmFuc2ZlckNvbnRyYWN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0eXBlOiAnVHJhbnNmZXJDb250cmFjdCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcmVmX2Jsb2NrX2J5dGVzOiAnYTc2MicsXG4gICAgICAgIHJlZl9ibG9ja19oYXNoOiAnMThkZmU5NDZmYmY3YTBhYycsXG4gICAgICAgIGV4cGlyYXRpb246IDE2NzY2NjAwNDMwMDAsXG4gICAgICAgIHRpbWVzdGFtcDogMTY3NjY1OTk4Mzc5OSxcbiAgICAgIH0sXG4gICAgICByYXdfZGF0YV9oZXg6XG4gICAgICAgICcwYTAyYTc2MjIyMDgxOGRmZTk0NmZiZjdhMGFjNDBmOGQ5ZTc4NWU2MzA1YTY5MDgwMTEyNjUwYTJkNzQ3OTcwNjUyZTY3NmY2ZjY3NmM2NTYxNzA2OTczMmU2MzZmNmQyZjcwNzI2Zjc0NmY2MzZmNmMyZTU0NzI2MTZlNzM2NjY1NzI0MzZmNmU3NDcyNjE2Mzc0MTIzNDBhMTU0MWU3ZTExZGYyYzU3MDQ4ODhjM2NiNjNmYjQzYTk0OThiZDE4MTJjYjIxMjE1NDFmNWY0MTRkNDQ3YWFmZTcwYmI5YjlkOTM5MTJjYmM0YzU0ZjBjMDE0MThjOGQxOWNhZDAzNzBiNzhiZTQ4NWU2MzAnLFxuICAgIH0pO1xuXG4gIC8vIGZ1bGwgbm9kZSAtIHJldHJpZXZlIGFjY291bnQgaW5mb3JtYXRpb24gY2FsbFxuICBub2NrKCdodHRwczovL2FwaS5zaGFzdGEudHJvbmdyaWQuaW8nKVxuICAgIC5nZXQoJy92MS9hY2NvdW50cy9UWDdHbW1yZmJnVEdZSzZhMkM4dm5CcjVUdVFickdtVkhFJylcbiAgICAucmVwbHkoMjAwLCB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYXRlc3Rfb3ByYXRpb25fdGltZTogMTY3NjQ4NzY3MjAwMCxcbiAgICAgICAgICBvd25lcl9wZXJtaXNzaW9uOiB7XG4gICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVFg3R21tcmZiZ1RHWUs2YTJDOHZuQnI1VHVRYnJHbVZIRScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJ1REdEdKYXJDSG4xSE45QVB5dmgzcTJIVms2a1czcW5wbUYnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdUR3FRZEgxakVKd3NVVFk1UHlmejhHQk1pbzhCZ1BiNm5LJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdGhyZXNob2xkOiAyLFxuICAgICAgICAgICAgcGVybWlzc2lvbl9uYW1lOiAnb3duZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYWNjb3VudF9yZXNvdXJjZToge1xuICAgICAgICAgICAgbGF0ZXN0X2NvbnN1bWVfdGltZV9mb3JfZW5lcmd5OiAxNjc2NDg3NjcyMDAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYWN0aXZlX3Blcm1pc3Npb246IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uczogJzdmZmYxZmMwMDM3ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1RYN0dtbXJmYmdUR1lLNmEyQzh2bkJyNVR1UWJyR21WSEUnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1REdEdKYXJDSG4xSE45QVB5dmgzcTJIVms2a1czcW5wbUYnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1RHcVFkSDFqRUp3c1VUWTVQeWZ6OEdCTWlvOEJnUGI2bksnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHRocmVzaG9sZDogMixcbiAgICAgICAgICAgICAgaWQ6IDIsXG4gICAgICAgICAgICAgIHR5cGU6ICdBY3RpdmUnLFxuICAgICAgICAgICAgICBwZXJtaXNzaW9uX25hbWU6ICdhY3RpdmUwJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBmcm96ZW5WMjogW1xuICAgICAgICAgICAge30sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdFTkVSR1knLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ1VOS05PV05fRU5VTV9WQUxVRV9SZXNvdXJjZUNvZGVfMicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWRkcmVzczogJzQxZTdlMTFkZjJjNTcwNDg4OGMzY2I2M2ZiNDNhOTQ5OGJkMTgxMmNiMicsXG4gICAgICAgICAgYmFsYW5jZTogOTAxMTQ3NDAwLFxuICAgICAgICAgIGNyZWF0ZV90aW1lOiAxNjc2NDg3Mjg4MDAwLFxuICAgICAgICAgIHRyYzIwOiBbXSxcbiAgICAgICAgICBsYXRlc3RfY29uc3VtZV9mcmVlX3RpbWU6IDE2NzY0ODc2NzIwMDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgYXQ6IDE2NzY2NTUwODk5NTIsXG4gICAgICAgIHBhZ2Vfc2l6ZTogMSxcbiAgICAgIH0sXG4gICAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5ub2NrVHJvblJlY2VpdmVSZWNvdmVyeSA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gZnVsbCBub2RlIC0gc2VuZFRyeCBmcm9tIHRyb253ZWIsIGJ1aWxkIHRyYW5zYWN0aW9uIGNhbGxcbiAgbm9jaygnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJylcbiAgICAucG9zdCgnL3dhbGxldC9jcmVhdGV0cmFuc2FjdGlvbicpXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICB0eElEOiAnY2I5YTFiNTU2OWU4YzA5MTk3ZDFlOWJiYTUxMzU3MTU5ZmZhOGI3ZTZiMTgzMDZlYTYxNTA3M2ZjODg0MmI2NCcsXG4gICAgICByYXdfZGF0YToge1xuICAgICAgICBjb250cmFjdDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGFtb3VudDogMTk5MDAwMDAwLFxuICAgICAgICAgICAgICAgIG93bmVyX2FkZHJlc3M6ICc0MThiMDRlY2RjM2RiN2U4ZGE3Y2Q4Mzg0OTJmNjZlNDI0YTA1MWUyY2QnLFxuICAgICAgICAgICAgICAgIHRvX2FkZHJlc3M6ICc0MTMyYzc1M2JmOGQzZGU3MzU4NzQ4YTc1ZmNmMjk5ZjE0NmRmZjZlNGUnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0eXBlX3VybDogJ3R5cGUuZ29vZ2xlYXBpcy5jb20vcHJvdG9jb2wuVHJhbnNmZXJDb250cmFjdCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHlwZTogJ1RyYW5zZmVyQ29udHJhY3QnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHJlZl9ibG9ja19ieXRlczogJzgxZTAnLFxuICAgICAgICByZWZfYmxvY2tfaGFzaDogJzViMWIyMGU5ZWJlYWE0ZjgnLFxuICAgICAgICBleHBpcmF0aW9uOiAxNjg1OTUyMjgyMDAwLFxuICAgICAgICB0aW1lc3RhbXA6IDE2ODU5NTIyMjQ0ODMsXG4gICAgICB9LFxuICAgICAgcmF3X2RhdGFfaGV4OlxuICAgICAgICAnMGEwMjgxZTAyMjA4NWIxYjIwZTllYmVhYTRmODQwOTBmYmQ4ZDQ4ODMxNWE2ODA4MDExMjY0MGEyZDc0Nzk3MDY1MmU2NzZmNmY2NzZjNjU2MTcwNjk3MzJlNjM2ZjZkMmY3MDcyNmY3NDZmNjM2ZjZjMmU1NDcyNjE2ZTczNjY2NTcyNDM2ZjZlNzQ3MjYxNjM3NDEyMzMwYTE1NDE4YjA0ZWNkYzNkYjdlOGRhN2NkODM4NDkyZjY2ZTQyNGEwNTFlMmNkMTIxNTQxMzJjNzUzYmY4ZDNkZTczNTg3NDhhNzVmY2YyOTlmMTQ2ZGZmNmU0ZTE4YzBmZmYxNWU3MGUzYjlkNWQ0ODgzMScsXG4gICAgfSk7XG5cbiAgLy8gZnVsbCBub2RlIC0gcmV0cmlldmUgYWNjb3VudCBpbmZvcm1hdGlvbiBjYWxsXG4gIC8vIFplcm8gQmFsYW5jZVxuICBub2NrKCdodHRwczovL2FwaS5zaGFzdGEudHJvbmdyaWQuaW8nKVxuICAgIC5nZXQoJy92MS9hY2NvdW50cy9UWDdHbW1yZmJnVEdZSzZhMkM4dm5CcjVUdVFickdtVkhFJylcbiAgICAucmVwbHkoMjAwLCB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYXRlc3Rfb3ByYXRpb25fdGltZTogMTY4NTk1MDg4NzAwMCxcbiAgICAgICAgICBvd25lcl9wZXJtaXNzaW9uOiB7XG4gICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVFg3R21tcmZiZ1RHWUs2YTJDOHZuQnI1VHVRYnJHbVZIRScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJ1REdEdKYXJDSG4xSE45QVB5dmgzcTJIVms2a1czcW5wbUYnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdUR3FRZEgxakVKd3NVVFk1UHlmejhHQk1pbzhCZ1BiNm5LJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdGhyZXNob2xkOiAyLFxuICAgICAgICAgICAgcGVybWlzc2lvbl9uYW1lOiAnb3duZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZnJlZV9uZXRfdXNhZ2U6IDMzNSxcbiAgICAgICAgICBhY2NvdW50X3Jlc291cmNlOiB7XG4gICAgICAgICAgICBsYXRlc3RfY29uc3VtZV90aW1lX2Zvcl9lbmVyZ3k6IDE2NzY0ODc2NzIwMDAsXG4gICAgICAgICAgICBlbmVyZ3lfd2luZG93X3NpemU6IDI4ODAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYWN0aXZlX3Blcm1pc3Npb246IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uczogJzdmZmYxZmMwMDM3ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1RYN0dtbXJmYmdUR1lLNmEyQzh2bkJyNVR1UWJyR21WSEUnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1REdEdKYXJDSG4xSE45QVB5dmgzcTJIVms2a1czcW5wbUYnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1RHcVFkSDFqRUp3c1VUWTVQeWZ6OEdCTWlvOEJnUGI2bksnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHRocmVzaG9sZDogMixcbiAgICAgICAgICAgICAgaWQ6IDIsXG4gICAgICAgICAgICAgIHR5cGU6ICdBY3RpdmUnLFxuICAgICAgICAgICAgICBwZXJtaXNzaW9uX25hbWU6ICdhY3RpdmUwJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBmcm96ZW5WMjogW1xuICAgICAgICAgICAge30sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdFTkVSR1knLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ1VOS05PV05fRU5VTV9WQUxVRV9SZXNvdXJjZUNvZGVfMicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWRkcmVzczogJzQxZTdlMTFkZjJjNTcwNDg4OGMzY2I2M2ZiNDNhOTQ5OGJkMTgxMmNiMicsXG4gICAgICAgICAgY3JlYXRlX3RpbWU6IDE2NzY0ODcyODgwMDAsXG4gICAgICAgICAgdHJjMjA6IFtdLFxuICAgICAgICAgIGxhdGVzdF9jb25zdW1lX2ZyZWVfdGltZTogMTY4NTk1MDg4NzAwMCxcbiAgICAgICAgICBuZXRfd2luZG93X3NpemU6IDI4ODAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBtZXRhOiB7XG4gICAgICAgIGF0OiAxNjg1OTUxMTM3ODE2LFxuICAgICAgICBwYWdlX3NpemU6IDEsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gIC8vIHJlY2VpdmUgYWRkcmVzcyB3aXRoIGJhbGFuY2VcbiAgbm9jaygnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJylcbiAgICAuZ2V0KCcvdjEvYWNjb3VudHMvVE5lR3B3QXVyazdralFMZGNkV2hGcjhZUDhFOVphOHcxeCcpXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgZGF0YTogW1xuICAgICAgICB7XG4gICAgICAgICAgb3duZXJfcGVybWlzc2lvbjoge1xuICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJ1ROZUdwd0F1cms3a2pRTGRjZFdoRnI4WVA4RTlaYTh3MXgnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgICAgICBwZXJtaXNzaW9uX25hbWU6ICdvd25lcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhY2NvdW50X3Jlc291cmNlOiB7XG4gICAgICAgICAgICBlbmVyZ3lfd2luZG93X3NpemU6IDI4ODAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYWN0aXZlX3Blcm1pc3Npb246IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uczogJzdmZmYxZmMwMDMzZWMzMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1ROZUdwd0F1cms3a2pRTGRjZFdoRnI4WVA4RTlaYTh3MXgnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgICAgICAgaWQ6IDIsXG4gICAgICAgICAgICAgIHR5cGU6ICdBY3RpdmUnLFxuICAgICAgICAgICAgICBwZXJtaXNzaW9uX25hbWU6ICdhY3RpdmUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGZyb3plblYyOiBbXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ0VORVJHWScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnVU5LTk9XTl9FTlVNX1ZBTFVFX1Jlc291cmNlQ29kZV8yJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBhZGRyZXNzOiAnNDE4YjA0ZWNkYzNkYjdlOGRhN2NkODM4NDkyZjY2ZTQyNGEwNTFlMmNkJyxcbiAgICAgICAgICBiYWxhbmNlOiAyMDAwMDAwMDAsXG4gICAgICAgICAgY3JlYXRlX3RpbWU6IDE2ODU5NTIwMDAwMDAsXG4gICAgICAgICAgdHJjMjA6IFtdLFxuICAgICAgICAgIG5ldF93aW5kb3dfc2l6ZTogMjg4MDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgYXQ6IDE2ODU5NTIxMjIxMDYsXG4gICAgICAgIHBhZ2Vfc2l6ZTogMSxcbiAgICAgIH0sXG4gICAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5ub2NrVHJvblJlY2VpdmVSZWNvdmVyeVplcm9GdW5kcyA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gZnVsbCBub2RlIC0gcmV0cmlldmUgYWNjb3VudCBpbmZvcm1hdGlvbiBjYWxsXG4gIC8vIE5vY2tpbmcgWmVybyBCYWxhbmNlXG4gIG5vY2soJ2h0dHBzOi8vYXBpLnNoYXN0YS50cm9uZ3JpZC5pbycpXG4gICAgLnBlcnNpc3QoKVxuICAgIC5nZXQoKHVyaSkgPT4gdXJpLmluY2x1ZGVzKCcvdjEvYWNjb3VudHMvJykpXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgZGF0YTogW1xuICAgICAgICB7XG4gICAgICAgICAgbGF0ZXN0X29wcmF0aW9uX3RpbWU6IDE2ODU5NTA4ODcwMDAsXG4gICAgICAgICAgb3duZXJfcGVybWlzc2lvbjoge1xuICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJ1RYN0dtbXJmYmdUR1lLNmEyQzh2bkJyNVR1UWJyR21WSEUnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdURHRHSmFyQ0huMUhOOUFQeXZoM3EySFZrNmtXM3FucG1GJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVEdxUWRIMWpFSndzVVRZNVB5Zno4R0JNaW84QmdQYjZuSycsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHRocmVzaG9sZDogMixcbiAgICAgICAgICAgIHBlcm1pc3Npb25fbmFtZTogJ293bmVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZyZWVfbmV0X3VzYWdlOiAzMzUsXG4gICAgICAgICAgYWNjb3VudF9yZXNvdXJjZToge1xuICAgICAgICAgICAgbGF0ZXN0X2NvbnN1bWVfdGltZV9mb3JfZW5lcmd5OiAxNjc2NDg3NjcyMDAwLFxuICAgICAgICAgICAgZW5lcmd5X3dpbmRvd19zaXplOiAyODgwMCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFjdGl2ZV9wZXJtaXNzaW9uOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbnM6ICc3ZmZmMWZjMDAzN2UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdUWDdHbW1yZmJnVEdZSzZhMkM4dm5CcjVUdVFickdtVkhFJyxcbiAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdURHRHSmFyQ0huMUhOOUFQeXZoM3EySFZrNmtXM3FucG1GJyxcbiAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdUR3FRZEgxakVKd3NVVFk1UHlmejhHQk1pbzhCZ1BiNm5LJyxcbiAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDIsXG4gICAgICAgICAgICAgIGlkOiAyLFxuICAgICAgICAgICAgICB0eXBlOiAnQWN0aXZlJyxcbiAgICAgICAgICAgICAgcGVybWlzc2lvbl9uYW1lOiAnYWN0aXZlMCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZnJvemVuVjI6IFtcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnRU5FUkdZJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdVTktOT1dOX0VOVU1fVkFMVUVfUmVzb3VyY2VDb2RlXzInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGFkZHJlc3M6ICc0MWU3ZTExZGYyYzU3MDQ4ODhjM2NiNjNmYjQzYTk0OThiZDE4MTJjYjInLFxuICAgICAgICAgIGNyZWF0ZV90aW1lOiAxNjc2NDg3Mjg4MDAwLFxuICAgICAgICAgIHRyYzIwOiBbXSxcbiAgICAgICAgICBsYXRlc3RfY29uc3VtZV9mcmVlX3RpbWU6IDE2ODU5NTA4ODcwMDAsXG4gICAgICAgICAgbmV0X3dpbmRvd19zaXplOiAyODgwMCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgbWV0YToge1xuICAgICAgICBhdDogMTY4NTk1MTEzNzgxNixcbiAgICAgICAgcGFnZV9zaXplOiAxLFxuICAgICAgfSxcbiAgICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLm5vY2tUcm9uVG9rZW5SZWNvdmVyeSA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gZnVsbCBub2RlIC0gc2VuZFRyeCBmcm9tIHRyb253ZWIsIGJ1aWxkIHRyYW5zYWN0aW9uIGNhbGxcbiAgbm9jaygnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJylcbiAgICAucG9zdCgnL3dhbGxldC90cmlnZ2Vyc21hcnRjb250cmFjdCcpXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgcmVzdWx0OiB7XG4gICAgICAgIHJlc3VsdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB0cmFuc2FjdGlvbjoge1xuICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgdHhJRDogJzA2ZDUxZWIxYjRiZDM1ZDFmMzIzYzZlZGQ2ZDYzZDdmMTFiMTY1MWIwMjRlNTQ4ZWEyYTg4NzJhOGZhZDdmNWMnLFxuICAgICAgICByYXdfZGF0YToge1xuICAgICAgICAgIGNvbnRyYWN0OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhcmFtZXRlcjoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiAnYTkwNTljYmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmNWY0MTRkNDQ3YWFmZTcwYmI5YjlkOTM5MTJjYmM0YzU0ZjBjMDE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyNDEwMTEwMCcsXG4gICAgICAgICAgICAgICAgICBvd25lcl9hZGRyZXNzOiAnNDE2YTBhMDVlMDk4YzYyOGY3ZjNjYTYzZGJiNTc1NmU1YzBjMDE4NTIxJyxcbiAgICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3M6ICc0MTQyYTFlMzlhZWZhNDkyOTBmMmIzZjllZDY4OGQ3Y2VjZjg2Y2Q2ZTAnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdHlwZV91cmw6ICd0eXBlLmdvb2dsZWFwaXMuY29tL3Byb3RvY29sLlRyaWdnZXJTbWFydENvbnRyYWN0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdHlwZTogJ1RyaWdnZXJTbWFydENvbnRyYWN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZWZfYmxvY2tfYnl0ZXM6ICdhNzFjJyxcbiAgICAgICAgICByZWZfYmxvY2tfaGFzaDogJ2QwZWNiNTNhYTAzODgyYTYnLFxuICAgICAgICAgIGV4cGlyYXRpb246IDE2NzY2NTk4MTUwMDAsXG4gICAgICAgICAgZmVlX2xpbWl0OiAxMDAwMDAwMDAsXG4gICAgICAgICAgdGltZXN0YW1wOiAxNjc2NjU5NzU4MjQyLFxuICAgICAgICB9LFxuICAgICAgICByYXdfZGF0YV9oZXg6XG4gICAgICAgICAgJzBhMDJhNzFjMjIwOGQwZWNiNTNhYTAzODgyYTY0MGQ4ZTRkOTg1ZTYzMDVhYWUwMTA4MWYxMmE5MDEwYTMxNzQ3OTcwNjUyZTY3NmY2ZjY3NmM2NTYxNzA2OTczMmU2MzZmNmQyZjcwNzI2Zjc0NmY2MzZmNmMyZTU0NzI2OTY3Njc2NTcyNTM2ZDYxNzI3NDQzNmY2ZTc0NzI2MTYzNzQxMjc0MGExNTQxNmEwYTA1ZTA5OGM2MjhmN2YzY2E2M2RiYjU3NTZlNWMwYzAxODUyMTEyMTU0MTQyYTFlMzlhZWZhNDkyOTBmMmIzZjllZDY4OGQ3Y2VjZjg2Y2Q2ZTAyMjQ0YTkwNTljYmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmNWY0MTRkNDQ3YWFmZTcwYmI5YjlkOTM5MTJjYmM0YzU0ZjBjMDE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyNDEwMTEwMDcwYTJhOWQ2ODVlNjMwOTAwMTgwYzJkNzJmJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgLy8gZnVsbCBub2RlIC0gcmV0cmlldmUgYWNjb3VudCBpbmZvcm1hdGlvbiBjYWxsXG4gIG5vY2soJ2h0dHBzOi8vYXBpLnNoYXN0YS50cm9uZ3JpZC5pbycpXG4gICAgLmdldCgnL3YxL2FjY291bnRzL1RLZHRkb05pcXFFeUdzTW1KeWI1cGd3U1lmN2RUQ2NtS1knKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGRhdGE6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhdGVzdF9vcHJhdGlvbl90aW1lOiAxNjc2NDg3MzUxMDAwLFxuICAgICAgICAgIG93bmVyX3Blcm1pc3Npb246IHtcbiAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdUS2R0ZG9OaXFxRXlHc01tSnliNXBnd1NZZjdkVENjbUtZJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVFFtVm5FOTdmWGVQNndFaHpybVNXTGJVUUdzbWdTeTFLRScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJ1RZZG5tNzlpVGg0WkVZODNIcGprcEtrNTVodHVqeFl0YzknLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IDIsXG4gICAgICAgICAgICBwZXJtaXNzaW9uX25hbWU6ICdvd25lcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhY2NvdW50X3Jlc291cmNlOiB7XG4gICAgICAgICAgICBsYXRlc3RfY29uc3VtZV90aW1lX2Zvcl9lbmVyZ3k6IDE2NzY0ODczNTEwMDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhY3RpdmVfcGVybWlzc2lvbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvcGVyYXRpb25zOiAnN2ZmZjFmYzAwMzdlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVEtkdGRvTmlxcUV5R3NNbUp5YjVwZ3dTWWY3ZFRDY21LWScsXG4gICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVFFtVm5FOTdmWGVQNndFaHpybVNXTGJVUUdzbWdTeTFLRScsXG4gICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVFlkbm03OWlUaDRaRVk4M0hwamtwS2s1NWh0dWp4WXRjOScsXG4gICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgdGhyZXNob2xkOiAyLFxuICAgICAgICAgICAgICBpZDogMixcbiAgICAgICAgICAgICAgdHlwZTogJ0FjdGl2ZScsXG4gICAgICAgICAgICAgIHBlcm1pc3Npb25fbmFtZTogJ2FjdGl2ZTAnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGZyb3plblYyOiBbXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ0VORVJHWScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnVU5LTk9XTl9FTlVNX1ZBTFVFX1Jlc291cmNlQ29kZV8yJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBhZGRyZXNzOiAnNDE2YTBhMDVlMDk4YzYyOGY3ZjNjYTYzZGJiNTc1NmU1YzBjMDE4NTIxJyxcbiAgICAgICAgICBiYWxhbmNlOiAzODg5MDQ3NDAwLFxuICAgICAgICAgIGNyZWF0ZV90aW1lOiAxNjc2NDg2NDYwMDAwLFxuICAgICAgICAgIHRyYzIwOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFRHM1hYeUV4QmtQcDluemRhakRac296RXU0QmthU0pvenM6ICc0OTAwMDAwMDAwJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBsYXRlc3RfY29uc3VtZV9mcmVlX3RpbWU6IDE2NzY0ODczNTEwMDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgYXQ6IDE2NzY2NTQ5ODM2NDUsXG4gICAgICAgIHBhZ2Vfc2l6ZTogMSxcbiAgICAgIH0sXG4gICAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5ub2NrRW9zUmVjb3ZlcnkgPSBmdW5jdGlvbiAoKSB7XG4gIG5vY2soJ2h0dHBzOi8va3lsaW4uZW9zbi5pbycpLnBvc3QoJyonKS5yZXBseSg1MDIpO1xuICBub2NrKCdodHRwczovL2t5bGluLmVvc24uaW8nKVxuICAgIC5wb3N0KCcvdjEvY2hhaW4vZ2V0X2luZm8nKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIHNlcnZlcl92ZXJzaW9uOiAnMTQxODU0MzEnLFxuICAgICAgY2hhaW5faWQ6ICcyYTAyYTAwNTNlNWE4Y2Y3M2E1NmJhMGZkYTExZTRkOTJlMDIzOGE0YTJhYTc0ZmNjZjQ2ZDVhOTEwNzQ2ODQwJyxcbiAgICAgIGhlYWRfYmxvY2tfbnVtOiAzOTc1MjAzMCxcbiAgICAgIGxhc3RfaXJyZXZlcnNpYmxlX2Jsb2NrX251bTogMzk3NTE3MDUsXG4gICAgICBsYXN0X2lycmV2ZXJzaWJsZV9ibG9ja19pZDogJzAyNWU5MDE5NGZiZTdiYTU3NzNhZjRiM2VkMDk5YWFlZDBmYjI2YjhmNzc1MGU0MTRlYTBlZTk3NWEwNGNkYzEnLFxuICAgICAgaGVhZF9ibG9ja19pZDogJzAyNWU5MTVlZmY2NTNmNGFkNDA4ZTFiMzZlNDBmNmI0ZDg0MmFmZGU4MTY3MjQ0NmY5MWNhMWU2MTVlYmYwM2MnLFxuICAgICAgaGVhZF9ibG9ja190aW1lOiAnMjAxOS0wNy0xOFQxNzo1Mjo0OS4wMDAnLFxuICAgICAgaGVhZF9ibG9ja19wcm9kdWNlcjogJ2Vvc25hdGlvbmZ0dycsXG4gICAgICB2aXJ0dWFsX2Jsb2NrX2NwdV9saW1pdDogMjAwMDAwMDAwLFxuICAgICAgdmlydHVhbF9ibG9ja19uZXRfbGltaXQ6IDUyNDI4ODAwMCxcbiAgICAgIGJsb2NrX2NwdV9saW1pdDogMTk5OTAwLFxuICAgICAgYmxvY2tfbmV0X2xpbWl0OiA1MjQyODgsXG4gICAgICBzZXJ2ZXJfdmVyc2lvbl9zdHJpbmc6ICd2MS44LjEnLFxuICAgICAgZm9ya19kYl9oZWFkX2Jsb2NrX251bTogMzk3NTIwMzAsXG4gICAgICBmb3JrX2RiX2hlYWRfYmxvY2tfaWQ6ICcwMjVlOTE1ZWZmNjUzZjRhZDQwOGUxYjM2ZTQwZjZiNGQ4NDJhZmRlODE2NzI0NDZmOTFjYTFlNjE1ZWJmMDNjJyxcbiAgICB9KVxuICAgIC5wb3N0KCcvdjEvY2hhaW4vZ2V0X2Jsb2NrJywgeyBibG9ja19udW1fb3JfaWQ6IDM5NzUyMDMwIH0pXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgdGltZXN0YW1wOiAnMjAxOS0wNy0xOFQxNzo1Mjo0OS4wMDAnLFxuICAgICAgcHJvZHVjZXI6ICdlb3NuYXRpb25mdHcnLFxuICAgICAgY29uZmlybWVkOiAwLFxuICAgICAgcHJldmlvdXM6ICcwMjVlOTE1ZGNmN2NlODU1YTU4MThmMTdjNzhmM2JlZGMxNmJmYTUwNWFhOGQyN2IyNjg2MGZlODc1MTEyZTVlJyxcbiAgICAgIHRyYW5zYWN0aW9uX21yb290OiAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgICBhY3Rpb25fbXJvb3Q6ICdkNzFmYzk0MmZiOWZjZDMzNzY5MmYwMzdkM2ZiOTY3ZDc2ZGRkMmIzMGJhZTQwNDUwZDFmZWVmNTBmNTZjZWVjJyxcbiAgICAgIHNjaGVkdWxlX3ZlcnNpb246IDI0NSxcbiAgICAgIG5ld19wcm9kdWNlcnM6IG51bGwsXG4gICAgICBoZWFkZXJfZXh0ZW5zaW9uczogW10sXG4gICAgICBwcm9kdWNlcl9zaWduYXR1cmU6XG4gICAgICAgICdTSUdfSzFfSndEV0dxMVN4UEh3NXhUd1V6WjFIZjRZQ2R2enNZdkFvaDluTnZHWGp5WGprNTdwTGI1ZmM4aW4zdm9wOWgxbU1kWnRzUmhFWWE0YlY5UDRmTXZIWGNxaUZqdzgzeScsXG4gICAgICB0cmFuc2FjdGlvbnM6IFtdLFxuICAgICAgYmxvY2tfZXh0ZW5zaW9uczogW10sXG4gICAgICBpZDogJzAyNWU5MTVlZmY2NTNmNGFkNDA4ZTFiMzZlNDBmNmI0ZDg0MmFmZGU4MTY3MjQ0NmY5MWNhMWU2MTVlYmYwM2MnLFxuICAgICAgYmxvY2tfbnVtOiAzOTc1MjAzMCxcbiAgICAgIHJlZl9ibG9ja19wcmVmaXg6IDMwMTc4Njk1MjQsXG4gICAgfSlcbiAgICAucG9zdCgnL3YxL2NoYWluL2dldF9hY2NvdW50JywgeyBhY2NvdW50X25hbWU6ICdqemprcG4xYmpudGknIH0pXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgYWNjb3VudF9uYW1lOiAnanpqa3BuMWJqbnRpJyxcbiAgICAgIGhlYWRfYmxvY2tfbnVtOiAzOTczOTU3NixcbiAgICAgIGhlYWRfYmxvY2tfdGltZTogJzIwMTktMDctMThUMTY6MDg6MzQuNTAwJyxcbiAgICAgIHByaXZpbGVnZWQ6IGZhbHNlLFxuICAgICAgbGFzdF9jb2RlX3VwZGF0ZTogJzE5NzAtMDEtMDFUMDA6MDA6MDAuMDAwJyxcbiAgICAgIGNyZWF0ZWQ6ICcyMDE5LTA3LTE4VDEyOjUyOjEwLjAwMCcsXG4gICAgICBjb3JlX2xpcXVpZF9iYWxhbmNlOiAnOTkuMDAwMCBFT1MnLFxuICAgICAgcmFtX3F1b3RhOiA5NTg2LFxuICAgICAgbmV0X3dlaWdodDogMCxcbiAgICAgIGNwdV93ZWlnaHQ6IDAsXG4gICAgICBuZXRfbGltaXQ6IHtcbiAgICAgICAgdXNlZDogMTYxLFxuICAgICAgICBhdmFpbGFibGU6IDAsXG4gICAgICAgIG1heDogMCxcbiAgICAgIH0sXG4gICAgICBjcHVfbGltaXQ6IHtcbiAgICAgICAgdXNlZDogNDE5LFxuICAgICAgICBhdmFpbGFibGU6IDAsXG4gICAgICAgIG1heDogMCxcbiAgICAgIH0sXG4gICAgICByYW1fdXNhZ2U6IDMzMjQsXG4gICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgcGVybV9uYW1lOiAnYWN0aXZlJyxcbiAgICAgICAgICBwYXJlbnQ6ICdvd25lcicsXG4gICAgICAgICAgcmVxdWlyZWRfYXV0aDoge1xuICAgICAgICAgICAgdGhyZXNob2xkOiAyLFxuICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnRU9TNWVjd201VUgxYjJnZ0dKVHE1cjFhcWQxY2dLc2kzTlVZUEpiTGFrYW5hNTdFMWFuUDInLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ0VPUzVveW96aUpVSDJ1M0tKdTlmVUZtYWhya01DMXg4NmhkQnM1NzY4dEE5TjNSN3pFTkh4JyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdFT1M2ZFp6Q0hmU1ZHR2pKOVZlZ01wdTl1dHNORVJxcm1ud29FbnRRY2dmQ1V5eXVjaVFtOScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFjY291bnRzOiBbXSxcbiAgICAgICAgICAgIHdhaXRzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcGVybV9uYW1lOiAnb3duZXInLFxuICAgICAgICAgIHBhcmVudDogJycsXG4gICAgICAgICAgcmVxdWlyZWRfYXV0aDoge1xuICAgICAgICAgICAgdGhyZXNob2xkOiAyLFxuICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnRU9TNWVjd201VUgxYjJnZ0dKVHE1cjFhcWQxY2dLc2kzTlVZUEpiTGFrYW5hNTdFMWFuUDInLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ0VPUzVveW96aUpVSDJ1M0tKdTlmVUZtYWhya01DMXg4NmhkQnM1NzY4dEE5TjNSN3pFTkh4JyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdFT1M2ZFp6Q0hmU1ZHR2pKOVZlZ01wdTl1dHNORVJxcm1ud29FbnRRY2dmQ1V5eXVjaVFtOScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFjY291bnRzOiBbXSxcbiAgICAgICAgICAgIHdhaXRzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRvdGFsX3Jlc291cmNlczoge1xuICAgICAgICBvd25lcjogJ2p6amtwbjFiam50aScsXG4gICAgICAgIG5ldF93ZWlnaHQ6ICcwLjAwMDAgRU9TJyxcbiAgICAgICAgY3B1X3dlaWdodDogJzAuMDAwMCBFT1MnLFxuICAgICAgICByYW1fYnl0ZXM6IDgxODYsXG4gICAgICB9LFxuICAgICAgc2VsZl9kZWxlZ2F0ZWRfYmFuZHdpZHRoOiBudWxsLFxuICAgICAgcmVmdW5kX3JlcXVlc3Q6IG51bGwsXG4gICAgICB2b3Rlcl9pbmZvOiBudWxsLFxuICAgIH0pXG4gICAgLnBvc3QoJy92MS9jaGFpbi9nZXRfYWNjb3VudCcsIHsgYWNjb3VudF9uYW1lOiAna2l5amNuMWl4ZnRwJyB9KVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGFjY291bnRfbmFtZTogJ2tpeWpjbjFpeGZ0cCcsXG4gICAgICBoZWFkX2Jsb2NrX251bTogMzk3Mzk1MDUsXG4gICAgICBoZWFkX2Jsb2NrX3RpbWU6ICcyMDE5LTA3LTE4VDE2OjA3OjU5LjAwMCcsXG4gICAgICBwcml2aWxlZ2VkOiBmYWxzZSxcbiAgICAgIGxhc3RfY29kZV91cGRhdGU6ICcxOTcwLTAxLTAxVDAwOjAwOjAwLjAwMCcsXG4gICAgICBjcmVhdGVkOiAnMjAxOS0wNy0xOFQxNTo1NzowNS41MDAnLFxuICAgICAgY29yZV9saXF1aWRfYmFsYW5jZTogJzEwMC4wMDAwIEVPUycsXG4gICAgICByYW1fcXVvdGE6IDk1ODcsXG4gICAgICBuZXRfd2VpZ2h0OiAwLFxuICAgICAgY3B1X3dlaWdodDogMCxcbiAgICAgIG5ldF9saW1pdDoge1xuICAgICAgICB1c2VkOiAwLFxuICAgICAgICBhdmFpbGFibGU6IDAsXG4gICAgICAgIG1heDogMCxcbiAgICAgIH0sXG4gICAgICBjcHVfbGltaXQ6IHtcbiAgICAgICAgdXNlZDogMCxcbiAgICAgICAgYXZhaWxhYmxlOiAwLFxuICAgICAgICBtYXg6IDAsXG4gICAgICB9LFxuICAgICAgcmFtX3VzYWdlOiAzMTk2LFxuICAgICAgcGVybWlzc2lvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHBlcm1fbmFtZTogJ2FjdGl2ZScsXG4gICAgICAgICAgcGFyZW50OiAnb3duZXInLFxuICAgICAgICAgIHJlcXVpcmVkX2F1dGg6IHtcbiAgICAgICAgICAgIHRocmVzaG9sZDogMixcbiAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ0VPUzVzeFJaQ3lhS0Fvd05aQlZyQXZVSFlRaW9NWGY4UXJ1N1hBRG9Kd3I1M2lGREpQc0dDJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdFT1M2NGhzSDlEaVAxZVNRdVlLRWFGRDVTUXA0Y0xSUHZUWWFDVXZWMkFmY1dCVnk3Q2pqTicsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnRU9TNzQxREV4NkdzdGJpMmNkbVF5akdyQmk4cm5kR2VTQnc3aE01dVlpS2Z0MnB0bUtSZ2QnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBhY2NvdW50czogW10sXG4gICAgICAgICAgICB3YWl0czogW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHBlcm1fbmFtZTogJ293bmVyJyxcbiAgICAgICAgICBwYXJlbnQ6ICcnLFxuICAgICAgICAgIHJlcXVpcmVkX2F1dGg6IHtcbiAgICAgICAgICAgIHRocmVzaG9sZDogMixcbiAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ0VPUzVzeFJaQ3lhS0Fvd05aQlZyQXZVSFlRaW9NWGY4UXJ1N1hBRG9Kd3I1M2lGREpQc0dDJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdFT1M2NGhzSDlEaVAxZVNRdVlLRWFGRDVTUXA0Y0xSUHZUWWFDVXZWMkFmY1dCVnk3Q2pqTicsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnRU9TNzQxREV4NkdzdGJpMmNkbVF5akdyQmk4cm5kR2VTQnc3aE01dVlpS2Z0MnB0bUtSZ2QnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBhY2NvdW50czogW10sXG4gICAgICAgICAgICB3YWl0czogW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB0b3RhbF9yZXNvdXJjZXM6IHtcbiAgICAgICAgb3duZXI6ICdraXlqY24xaXhmdHAnLFxuICAgICAgICBuZXRfd2VpZ2h0OiAnMC4wMDAwIEVPUycsXG4gICAgICAgIGNwdV93ZWlnaHQ6ICcwLjAwMDAgRU9TJyxcbiAgICAgICAgcmFtX2J5dGVzOiA4MTg3LFxuICAgICAgfSxcbiAgICAgIHNlbGZfZGVsZWdhdGVkX2JhbmR3aWR0aDogbnVsbCxcbiAgICAgIHJlZnVuZF9yZXF1ZXN0OiBudWxsLFxuICAgICAgdm90ZXJfaW5mbzogbnVsbCxcbiAgICB9KTtcbn07XG4iXX0=

Выполнить команду


Для локальной разработки. Не используйте в интернете!