PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/avalanche/dist/apis/avm

Просмотр файла: genesisasset.js

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GenesisAsset = void 0;
/**
 * @packageDocumentation
 * @module API-AVM-GenesisAsset
 */
const buffer_1 = require("buffer/");
const bintools_1 = __importDefault(require("../../utils/bintools"));
const initialstates_1 = require("./initialstates");
const constants_1 = require("../../utils/constants");
const serialization_1 = require("../../utils/serialization");
const createassettx_1 = require("./createassettx");
const bn_js_1 = __importDefault(require("bn.js"));
/**
 * @ignore
 */
const serialization = serialization_1.Serialization.getInstance();
const bintools = bintools_1.default.getInstance();
const utf8 = "utf8";
const buffer = "Buffer";
const decimalString = "decimalString";
class GenesisAsset extends createassettx_1.CreateAssetTx {
    /**
     * Class representing a GenesisAsset
     *
     * @param assetAlias Optional String for the asset alias
     * @param name Optional String for the descriptive name of the asset
     * @param symbol Optional String for the ticker symbol of the asset
     * @param denomination Optional number for the denomination which is 10^D. D must be >= 0 and <= 32. Ex: $1 AVAX = 10^9 $nAVAX
     * @param initialState Optional [[InitialStates]] that represent the intial state of a created asset
     * @param memo Optional {@link https://github.com/feross/buffer|Buffer} for the memo field
     */
    constructor(assetAlias = undefined, name = undefined, symbol = undefined, denomination = undefined, initialState = undefined, memo = undefined) {
        super(constants_1.DefaultNetworkID, buffer_1.Buffer.alloc(32), [], [], memo);
        this._typeName = "GenesisAsset";
        this._codecID = undefined;
        this._typeID = undefined;
        this.assetAlias = "";
        /**
         * Returns the string representation of the assetAlias
         */
        this.getAssetAlias = () => this.assetAlias;
        if (typeof assetAlias === "string" &&
            typeof name === "string" &&
            typeof symbol === "string" &&
            typeof denomination === "number" &&
            denomination >= 0 &&
            denomination <= 32 &&
            typeof initialState !== "undefined") {
            this.assetAlias = assetAlias;
            this.name = name;
            this.symbol = symbol;
            this.denomination.writeUInt8(denomination, 0);
            this.initialState = initialState;
        }
    }
    serialize(encoding = "hex") {
        const fields = super.serialize(encoding);
        delete fields["blockchainID"];
        delete fields["outs"];
        delete fields["ins"];
        return Object.assign(Object.assign({}, fields), { assetAlias: serialization.encoder(this.assetAlias, encoding, utf8, utf8), name: serialization.encoder(this.name, encoding, utf8, utf8), symbol: serialization.encoder(this.symbol, encoding, utf8, utf8), denomination: serialization.encoder(this.denomination, encoding, buffer, decimalString, 1), initialState: this.initialState.serialize(encoding) });
    }
    deserialize(fields, encoding = "hex") {
        fields["blockchainID"] = buffer_1.Buffer.alloc(32, 16).toString("hex");
        fields["outs"] = [];
        fields["ins"] = [];
        super.deserialize(fields, encoding);
        this.assetAlias = serialization.decoder(fields["assetAlias"], encoding, utf8, utf8);
        this.name = serialization.decoder(fields["name"], encoding, utf8, utf8);
        this.symbol = serialization.decoder(fields["symbol"], encoding, utf8, utf8);
        this.denomination = serialization.decoder(fields["denomination"], encoding, decimalString, buffer, 1);
        this.initialState = new initialstates_1.InitialStates();
        this.initialState.deserialize(fields["initialState"], encoding);
    }
    /**
     * Takes a {@link https://github.com/feross/buffer|Buffer} containing an [[GenesisAsset]], parses it, populates the class, and returns the length of the [[GenesisAsset]] in bytes.
     *
     * @param bytes A {@link https://github.com/feross/buffer|Buffer} containing a raw [[GenesisAsset]]
     *
     * @returns The length of the raw [[GenesisAsset]]
     *
     * @remarks assume not-checksummed
     */
    fromBuffer(bytes, offset = 0) {
        const assetAliasSize = bintools
            .copyFrom(bytes, offset, offset + 2)
            .readUInt16BE(0);
        offset += 2;
        this.assetAlias = bintools
            .copyFrom(bytes, offset, offset + assetAliasSize)
            .toString("utf8");
        offset += assetAliasSize;
        offset += super.fromBuffer(bytes, offset);
        return offset;
    }
    /**
     * Returns a {@link https://github.com/feross/buffer|Buffer} representation of the [[GenesisAsset]].
     */
    toBuffer(networkID = constants_1.DefaultNetworkID) {
        // asset alias
        const assetAlias = this.getAssetAlias();
        const assetAliasbuffSize = buffer_1.Buffer.alloc(2);
        assetAliasbuffSize.writeUInt16BE(assetAlias.length, 0);
        let bsize = assetAliasbuffSize.length;
        let barr = [assetAliasbuffSize];
        const assetAliasbuff = buffer_1.Buffer.alloc(assetAlias.length);
        assetAliasbuff.write(assetAlias, 0, assetAlias.length, utf8);
        bsize += assetAliasbuff.length;
        barr.push(assetAliasbuff);
        const networkIDBuff = buffer_1.Buffer.alloc(4);
        networkIDBuff.writeUInt32BE(new bn_js_1.default(networkID).toNumber(), 0);
        bsize += networkIDBuff.length;
        barr.push(networkIDBuff);
        // Blockchain ID
        bsize += 32;
        barr.push(buffer_1.Buffer.alloc(32));
        // num Outputs
        bsize += 4;
        barr.push(buffer_1.Buffer.alloc(4));
        // num Inputs
        bsize += 4;
        barr.push(buffer_1.Buffer.alloc(4));
        // memo
        const memo = this.getMemo();
        const memobuffSize = buffer_1.Buffer.alloc(4);
        memobuffSize.writeUInt32BE(memo.length, 0);
        bsize += memobuffSize.length;
        barr.push(memobuffSize);
        bsize += memo.length;
        barr.push(memo);
        // asset name
        const name = this.getName();
        const namebuffSize = buffer_1.Buffer.alloc(2);
        namebuffSize.writeUInt16BE(name.length, 0);
        bsize += namebuffSize.length;
        barr.push(namebuffSize);
        const namebuff = buffer_1.Buffer.alloc(name.length);
        namebuff.write(name, 0, name.length, utf8);
        bsize += namebuff.length;
        barr.push(namebuff);
        // symbol
        const symbol = this.getSymbol();
        const symbolbuffSize = buffer_1.Buffer.alloc(2);
        symbolbuffSize.writeUInt16BE(symbol.length, 0);
        bsize += symbolbuffSize.length;
        barr.push(symbolbuffSize);
        const symbolbuff = buffer_1.Buffer.alloc(symbol.length);
        symbolbuff.write(symbol, 0, symbol.length, utf8);
        bsize += symbolbuff.length;
        barr.push(symbolbuff);
        // denomination
        const denomination = this.getDenomination();
        const denominationbuffSize = buffer_1.Buffer.alloc(1);
        denominationbuffSize.writeUInt8(denomination, 0);
        bsize += denominationbuffSize.length;
        barr.push(denominationbuffSize);
        bsize += this.initialState.toBuffer().length;
        barr.push(this.initialState.toBuffer());
        return buffer_1.Buffer.concat(barr, bsize);
    }
}
exports.GenesisAsset = GenesisAsset;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXNpc2Fzc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaXMvYXZtL2dlbmVzaXNhc3NldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7O0dBR0c7QUFDSCxvQ0FBZ0M7QUFDaEMsb0VBQTJDO0FBQzNDLG1EQUErQztBQUMvQyxxREFBd0Q7QUFDeEQsNkRBSWtDO0FBQ2xDLG1EQUErQztBQUMvQyxrREFBc0I7QUFFdEI7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBa0IsNkJBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtBQUNoRSxNQUFNLFFBQVEsR0FBYSxrQkFBUSxDQUFDLFdBQVcsRUFBRSxDQUFBO0FBQ2pELE1BQU0sSUFBSSxHQUFtQixNQUFNLENBQUE7QUFDbkMsTUFBTSxNQUFNLEdBQW1CLFFBQVEsQ0FBQTtBQUN2QyxNQUFNLGFBQWEsR0FBbUIsZUFBZSxDQUFBO0FBRXJELE1BQWEsWUFBYSxTQUFRLDZCQUFhO0lBNEo3Qzs7Ozs7Ozs7O09BU0c7SUFDSCxZQUNFLGFBQXFCLFNBQVMsRUFDOUIsT0FBZSxTQUFTLEVBQ3hCLFNBQWlCLFNBQVMsRUFDMUIsZUFBdUIsU0FBUyxFQUNoQyxlQUE4QixTQUFTLEVBQ3ZDLE9BQWUsU0FBUztRQUV4QixLQUFLLENBQUMsNEJBQWdCLEVBQUUsZUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBN0svQyxjQUFTLEdBQUcsY0FBYyxDQUFBO1FBQzFCLGFBQVEsR0FBRyxTQUFTLENBQUE7UUFDcEIsWUFBTyxHQUFHLFNBQVMsQ0FBQTtRQStDbkIsZUFBVSxHQUFXLEVBQUUsQ0FBQTtRQUVqQzs7V0FFRztRQUNILGtCQUFhLEdBQUcsR0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQTtRQXdIM0MsSUFDRSxPQUFPLFVBQVUsS0FBSyxRQUFRO1lBQzlCLE9B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QUksQ0FBQyxDQUFBO1FBQ2hELEtBQUssSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFBO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFckIsZUFBZTtRQUNmLE1BQU0sWUFBWSxHQUFXLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUNuRCxNQUFNLG9CQUFvQixHQUFXLGVBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDcEQsb0JBQW9CLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNoRCxLQUFLLElBQUksb0JBQW9CLENBQUMsTUFBTSxDQUFBO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUUvQixLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUE7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDdkMsT0FBTyxlQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0NBcUNGO0FBL0xELG9DQStMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIEFQSS1BVk0tR2VuZXNpc0Fzc2V0XG4gKi9cbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gXCJidWZmZXIvXCJcbmltcG9ydCBCaW5Ub29scyBmcm9tIFwiLi4vLi4vdXRpbHMvYmludG9vbHNcIlxuaW1wb3J0IHsgSW5pdGlhbFN0YXRlcyB9IGZyb20gXCIuL2luaXRpYWxzdGF0ZXNcIlxuaW1wb3J0IHsgRGVmYXVsdE5ldHdvcmtJRCB9IGZyb20gXCIuLi8uLi91dGlscy9jb25zdGFudHNcIlxuaW1wb3J0IHtcbiAgU2VyaWFsaXphdGlvbixcbiAgU2VyaWFsaXplZEVuY29kaW5nLFxuICBTZXJpYWxpemVkVHlwZVxufSBmcm9tIFwiLi4vLi4vdXRpbHMvc2VyaWFsaXphdGlvblwiXG5pbXBvcnQgeyBDcmVhdGVBc3NldFR4IH0gZnJvbSBcIi4vY3JlYXRlYXNzZXR0eFwiXG5pbXBvcnQgQk4gZnJvbSBcImJuLmpzXCJcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbmNvbnN0IHNlcmlhbGl6YXRpb246IFNlcmlhbGl6YXRpb24gPSBTZXJpYWxpemF0aW9uLmdldEluc3RhbmNlKClcbmNvbnN0IGJpbnRvb2xzOiBCaW5Ub29scyA9IEJpblRvb2xzLmdldEluc3RhbmNlKClcbmNvbnN0IHV0Zjg6IFNlcmlhbGl6ZWRUeXBlID0gXCJ1dGY4XCJcbmNvbnN0IGJ1ZmZlcjogU2VyaWFsaXplZFR5cGUgPSBcIkJ1ZmZlclwiXG5jb25zdCBkZWNpbWFsU3RyaW5nOiBTZXJpYWxpemVkVHlwZSA9IFwiZGVjaW1hbFN0cmluZ1wiXG5cbmV4cG9ydCBjbGFzcyBHZW5lc2lzQXNzZXQgZXh0ZW5kcyBDcmVhdGVBc3NldFR4IHtcbiAgcHJvdGVjdGVkIF90eXBlTmFtZSA9IFwiR2VuZXNpc0Fzc2V0XCJcbiAgcHJvdGVjdGVkIF9jb2RlY0lEID0gdW5kZWZpbmVkXG4gIHByb3RlY3RlZCBfdHlwZUlEID0gdW5kZWZpbmVkXG5cbiAgc2VyaWFsaXplKGVuY29kaW5nOiBTZXJpYWxpemVkRW5jb2RpbmcgPSBcImhleFwiKTogb2JqZWN0IHtcbiAgICBjb25zdCBmaWVsZHM6IG9iamVjdCA9IHN1cGVyLnNlcmlhbGl6ZShlbmNvZGluZylcbiAgICBkZWxldGUgZmllbGRzW1wiYmxvY2tjaGFpbklEXCJdXG4gICAgZGVsZXRlIGZpZWxkc1tcIm91dHNcIl1cbiAgICBkZWxldGUgZmllbGRzW1wiaW5zXCJdXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZpZWxkcyxcbiAgICAgIGFzc2V0QWxpYXM6IHNlcmlhbGl6YXRpb24uZW5jb2Rlcih0aGlzLmFzc2V0QWxpYXMsIGVuY29kaW5nLCB1dGY4LCB1dGY4KSxcbiAgICAgIG5hbWU6IHNlcmlhbGl6YXRpb24uZW5jb2Rlcih0aGlzLm5hbWUsIGVuY29kaW5nLCB1dGY4LCB1dGY4KSxcbiAgICAgIHN5bWJvbDogc2VyaWFsaXphdGlvbi5lbmNvZGVyKHRoaXMuc3ltYm9sLCBlbmNvZGluZywgdXRmOCwgdXRmOCksXG4gICAgICBkZW5vbWluYXRpb246IHNlcmlhbGl6YXRpb24uZW5jb2RlcihcbiAgICAgICAgdGhpcy5kZW5vbWluYXRpb24sXG4gICAgICAgIGVuY29kaW5nLFxuICAgICAgICBidWZmZXIsXG4gICAgICAgIGRlY2ltYWxTdHJpbmcsXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBpbml0aWFsU3RhdGU6IHRoaXMuaW5pdGlhbFN0YXRlLnNlcmlhbGl6ZShlbmNvZGluZylcbiAgICB9XG4gIH1cblxuICBkZXNlcmlhbGl6ZShmaWVsZHM6IG9iamVjdCwgZW5jb2Rpbmc6IFNlcmlhbGl6ZWRFbmNvZGluZyA9IFwiaGV4XCIpIHtcbiAgICBmaWVsZHNbXCJibG9ja2NoYWluSURcIl0gPSBCdWZmZXIuYWxsb2MoMzIsIDE2KS50b1N0cmluZyhcImhleFwiKVxuICAgIGZpZWxkc1tcIm91dHNcIl0gPSBbXVxuICAgIGZpZWxkc1tcImluc1wiXSA9IFtdXG4gICAgc3VwZXIuZGVzZXJpYWxpemUoZmllbGRzLCBlbmNvZGluZylcbiAgICB0aGlzLmFzc2V0QWxpYXMgPSBzZXJpYWxpemF0aW9uLmRlY29kZXIoXG4gICAgICBmaWVsZHNbXCJhc3NldEFsaWFzXCJdLFxuICAgICAgZW5jb2RpbmcsXG4gICAgICB1dGY4LFxuICAgICAgdXRmOFxuICAgIClcbiAgICB0aGlzLm5hbWUgPSBzZXJpYWxpemF0aW9uLmRlY29kZXIoZmllbGRzW1wibmFtZVwiXSwgZW5jb2RpbmcsIHV0ZjgsIHV0ZjgpXG4gICAgdGhpcy5zeW1ib2wgPSBzZXJpYWxpemF0aW9uLmRlY29kZXIoZmllbGRzW1wic3ltYm9sXCJdLCBlbmNvZGluZywgdXRmOCwgdXRmOClcbiAgICB0aGlzLmRlbm9taW5hdGlvbiA9IHNlcmlhbGl6YXRpb24uZGVjb2RlcihcbiAgICAgIGZpZWxkc1tcImRlbm9taW5hdGlvblwiXSxcbiAgICAgIGVuY29kaW5nLFxuICAgICAgZGVjaW1hbFN0cmluZyxcbiAgICAgIGJ1ZmZlcixcbiAgICAgIDFcbiAgICApXG4gICAgdGhpcy5pbml0aWFsU3RhdGUgPSBuZXcgSW5pdGlhbFN0YXRlcygpXG4gICAgdGhpcy5pbml0aWFsU3RhdGUuZGVzZXJpYWxpemUoZmllbGRzW1wiaW5pdGlhbFN0YXRlXCJdLCBlbmNvZGluZylcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3NldEFsaWFzOiBzdHJpbmcgPSBcIlwiXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYXNzZXRBbGlhc1xuICAgKi9cbiAgZ2V0QXNzZXRBbGlhcyA9ICgpOiBzdHJpbmcgPT4gdGhpcy5hc3NldEFsaWFzXG5cbiAgLyoqXG4gICAqIFRha2VzIGEge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn0gY29udGFpbmluZyBhbiBbW0dlbmVzaXNBc3NldF1dLCBwYXJzZXMgaXQsIHBvcHVsYXRlcyB0aGUgY2xhc3MsIGFuZCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIFtbR2VuZXNpc0Fzc2V0XV0gaW4gYnl0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSBieXRlcyBBIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9IGNvbnRhaW5pbmcgYSByYXcgW1tHZW5lc2lzQXNzZXRdXVxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbGVuZ3RoIG9mIHRoZSByYXcgW1tHZW5lc2lzQXNzZXRdXVxuICAgKlxuICAgKiBAcmVtYXJrcyBhc3N1bWUgbm90LWNoZWNrc3VtbWVkXG4gICAqL1xuICBmcm9tQnVmZmVyKGJ5dGVzOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyID0gMCk6IG51bWJlciB7XG4gICAgY29uc3QgYXNzZXRBbGlhc1NpemU6IG51bWJlciA9IGJpbnRvb2xzXG4gICAgICAuY29weUZyb20oYnl0ZXMsIG9mZnNldCwgb2Zmc2V0ICsgMilcbiAgICAgIC5yZWFkVUludDE2QkUoMClcbiAgICBvZmZzZXQgKz0gMlxuICAgIHRoaXMuYXNzZXRBbGlhcyA9IGJpbnRvb2xzXG4gICAgICAuY29weUZyb20oYnl0ZXMsIG9mZnNldCwgb2Zmc2V0ICsgYXNzZXRBbGlhc1NpemUpXG4gICAgICAudG9TdHJpbmcoXCJ1dGY4XCIpXG4gICAgb2Zmc2V0ICs9IGFzc2V0QWxpYXNTaXplXG4gICAgb2Zmc2V0ICs9IHN1cGVyLmZyb21CdWZmZXIoYnl0ZXMsIG9mZnNldClcbiAgICByZXR1cm4gb2Zmc2V0XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbW0dlbmVzaXNBc3NldF1dLlxuICAgKi9cbiAgdG9CdWZmZXIobmV0d29ya0lEOiBudW1iZXIgPSBEZWZhdWx0TmV0d29ya0lEKTogQnVmZmVyIHtcbiAgICAvLyBhc3NldCBhbGlhc1xuICAgIGNvbnN0IGFzc2V0QWxpYXM6IHN0cmluZyA9IHRoaXMuZ2V0QXNzZXRBbGlhcygpXG4gICAgY29uc3QgYXNzZXRBbGlhc2J1ZmZTaXplOiBCdWZmZXIgPSBCdWZmZXIuYWxsb2MoMilcbiAgICBhc3NldEFsaWFzYnVmZlNpemUud3JpdGVVSW50MTZCRShhc3NldEFsaWFzLmxlbmd0aCwgMClcbiAgICBsZXQgYnNpemU6IG51bWJlciA9IGFzc2V0QWxpYXNidWZmU2l6ZS5sZW5ndGhcbiAgICBsZXQgYmFycjogQnVmZmVyW10gPSBbYXNzZXRBbGlhc2J1ZmZTaXplXVxuICAgIGNvbnN0IGFzc2V0QWxpYXNidWZmOiBCdWZmZXIgPSBCdWZmZXIuYWxsb2MoYXNzZXRBbGlhcy5sZW5ndGgpXG4gICAgYXNzZXRBbGlhc2J1ZmYud3JpdGUoYXNzZXRBbGlhcywgMCwgYXNzZXRBbGlhcy5sZW5ndGgsIHV0ZjgpXG4gICAgYnNpemUgKz0gYXNzZXRBbGlhc2J1ZmYubGVuZ3RoXG4gICAgYmFyci5wdXNoKGFzc2V0QWxpYXNidWZmKVxuXG4gICAgY29uc3QgbmV0d29ya0lEQnVmZjogQnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpXG4gICAgbmV0d29ya0lEQnVmZi53cml0ZVVJbnQzMkJFKG5ldyBCTihuZXR3b3JrSUQpLnRvTnVtYmVyKCksIDApXG4gICAgYnNpemUgKz0gbmV0d29ya0lEQnVmZi5sZW5ndGhcbiAgICBiYXJyLnB1c2gobmV0d29ya0lEQnVmZilcblxuICAgIC8vIEJsb2NrY2hhaW4gSURcbiAgICBic2l6ZSArPSAzMlxuICAgIGJhcnIucHVzaChCdWZmZXIuYWxsb2MoMzIpKVxuXG4gICAgLy8gbnVtIE91dHB1dHNcbiAgICBic2l6ZSArPSA0XG4gICAgYmFyci5wdXNoKEJ1ZmZlci5hbGxvYyg0KSlcblxuICAgIC8vIG51bSBJbnB1dHNcbiAgICBic2l6ZSArPSA0XG4gICAgYmFyci5wdXNoKEJ1ZmZlci5hbGxvYyg0KSlcblxuICAgIC8vIG1lbW9cbiAgICBjb25zdCBtZW1vOiBCdWZmZXIgPSB0aGlzLmdldE1lbW8oKVxuICAgIGNvbnN0IG1lbW9idWZmU2l6ZTogQnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpXG4gICAgbWVtb2J1ZmZTaXplLndyaXRlVUludDMyQkUobWVtby5sZW5ndGgsIDApXG4gICAgYnNpemUgKz0gbWVtb2J1ZmZTaXplLmxlbmd0aFxuICAgIGJhcnIucHVzaChtZW1vYnVmZlNpemUpXG5cbiAgICBic2l6ZSArPSBtZW1vLmxlbmd0aFxuICAgIGJhcnIucHVzaChtZW1vKVxuXG4gICAgLy8gYXNzZXQgbmFtZVxuICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IHRoaXMuZ2V0TmFtZSgpXG4gICAgY29uc3QgbmFtZWJ1ZmZTaXplOiBCdWZmZXIgPSBCdWZmZXIuYWxsb2MoMilcbiAgICBuYW1lYnVmZlNpemUud3JpdGVVSW50MTZCRShuYW1lLmxlbmd0aCwgMClcbiAgICBic2l6ZSArPSBuYW1lYnVmZlNpemUubGVuZ3RoXG4gICAgYmFyci5wdXNoKG5hbWVidWZmU2l6ZSlcbiAgICBjb25zdCBuYW1lYnVmZjogQnVmZmVyID0gQnVmZmVyLmFsbG9jKG5hbWUubGVuZ3RoKVxuICAgIG5hbWVidWZmLndyaXRlKG5hbWUsIDAsIG5hbWUubGVuZ3RoLCB1dGY4KVxuICAgIGJzaXplICs9IG5hbWVidWZmLmxlbmd0aFxuICAgIGJhcnIucHVzaChuYW1lYnVmZilcblxuICAgIC8vIHN5bWJvbFxuICAgIGNvbnN0IHN5bWJvbDogc3RyaW5nID0gdGhpcy5nZXRTeW1ib2woKVxuICAgIGNvbnN0IHN5bWJvbGJ1ZmZTaXplOiBCdWZmZXIgPSBCdWZmZXIuYWxsb2MoMilcbiAgICBzeW1ib2xidWZmU2l6ZS53cml0ZVVJbnQxNkJFKHN5bWJvbC5sZW5ndGgsIDApXG4gICAgYnNpemUgKz0gc3ltYm9sYnVmZlNpemUubGVuZ3RoXG4gICAgYmFyci5wdXNoKHN5bWJvbGJ1ZmZTaXplKVxuXG4gICAgY29uc3Qgc3ltYm9sYnVmZjogQnVmZmVyID0gQnVmZmVyLmFsbG9jKHN5bWJvbC5sZW5ndGgpXG4gICAgc3ltYm9sYnVmZi53cml0ZShzeW1ib2wsIDAsIHN5bWJvbC5sZW5ndGgsIHV0ZjgpXG4gICAgYnNpemUgKz0gc3ltYm9sYnVmZi5sZW5ndGhcbiAgICBiYXJyLnB1c2goc3ltYm9sYnVmZilcblxuICAgIC8vIGRlbm9taW5hdGlvblxuICAgIGNvbnN0IGRlbm9taW5hdGlvbjogbnVtYmVyID0gdGhpcy5nZXREZW5vbWluYXRpb24oKVxuICAgIGNvbnN0IGRlbm9taW5hdGlvbmJ1ZmZTaXplOiBCdWZmZXIgPSBCdWZmZXIuYWxsb2MoMSlcbiAgICBkZW5vbWluYXRpb25idWZmU2l6ZS53cml0ZVVJbnQ4KGRlbm9taW5hdGlvbiwgMClcbiAgICBic2l6ZSArPSBkZW5vbWluYXRpb25idWZmU2l6ZS5sZW5ndGhcbiAgICBiYXJyLnB1c2goZGVub21pbmF0aW9uYnVmZlNpemUpXG5cbiAgICBic2l6ZSArPSB0aGlzLmluaXRpYWxTdGF0ZS50b0J1ZmZlcigpLmxlbmd0aFxuICAgIGJhcnIucHVzaCh0aGlzLmluaXRpYWxTdGF0ZS50b0J1ZmZlcigpKVxuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KGJhcnIsIGJzaXplKVxuICB9XG5cbiAgLyoqXG4gICAqIENsYXNzIHJlcHJlc2VudGluZyBhIEdlbmVzaXNBc3NldFxuICAgKlxuICAgKiBAcGFyYW0gYXNzZXRBbGlhcyBPcHRpb25hbCBTdHJpbmcgZm9yIHRoZSBhc3NldCBhbGlhc1xuICAgKiBAcGFyYW0gbmFtZSBPcHRpb25hbCBTdHJpbmcgZm9yIHRoZSBkZXNjcmlwdGl2ZSBuYW1lIG9mIHRoZSBhc3NldFxuICAgKiBAcGFyYW0gc3ltYm9sIE9wdGlvbmFsIFN0cmluZyBmb3IgdGhlIHRpY2tlciBzeW1ib2wgb2YgdGhlIGFzc2V0XG4gICAqIEBwYXJhbSBkZW5vbWluYXRpb24gT3B0aW9uYWwgbnVtYmVyIGZvciB0aGUgZGVub21pbmF0aW9uIHdoaWNoIGlzIDEwXkQuIEQgbXVzdCBiZSA+PSAwIGFuZCA8PSAzMi4gRXg6ICQxIEFWQVggPSAxMF45ICRuQVZBWFxuICAgKiBAcGFyYW0gaW5pdGlhbFN0YXRlIE9wdGlvbmFsIFtbSW5pdGlhbFN0YXRlc11dIHRoYXQgcmVwcmVzZW50IHRoZSBpbnRpYWwgc3RhdGUgb2YgYSBjcmVhdGVkIGFzc2V0XG4gICAqIEBwYXJhbSBtZW1vIE9wdGlvbmFsIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9IGZvciB0aGUgbWVtbyBmaWVsZFxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgYXNzZXRBbGlhczogc3RyaW5nID0gdW5kZWZpbmVkLFxuICAgIG5hbWU6IHN0cmluZyA9IHVuZGVmaW5lZCxcbiAgICBzeW1ib2w6IHN0cmluZyA9IHVuZGVmaW5lZCxcbiAgICBkZW5vbWluYXRpb246IG51bWJlciA9IHVuZGVmaW5lZCxcbiAgICBpbml0aWFsU3RhdGU6IEluaXRpYWxTdGF0ZXMgPSB1bmRlZmluZWQsXG4gICAgbWVtbzogQnVmZmVyID0gdW5kZWZpbmVkXG4gICkge1xuICAgIHN1cGVyKERlZmF1bHROZXR3b3JrSUQsIEJ1ZmZlci5hbGxvYygzMiksIFtdLCBbXSwgbWVtbylcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgYXNzZXRBbGlhcyA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgdHlwZW9mIG5hbWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgIHR5cGVvZiBzeW1ib2wgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgIHR5cGVvZiBkZW5vbWluYXRpb24gPT09IFwibnVtYmVyXCIgJiZcbiAgICAgIGRlbm9taW5hdGlvbiA+PSAwICYmXG4gICAgICBkZW5vbWluYXRpb24gPD0gMzIgJiZcbiAgICAgIHR5cGVvZiBpbml0aWFsU3RhdGUgIT09IFwidW5kZWZpbmVkXCJcbiAgICApIHtcbiAgICAgIHRoaXMuYXNzZXRBbGlhcyA9IGFzc2V0QWxpYXNcbiAgICAgIHRoaXMubmFtZSA9IG5hbWVcbiAgICAgIHRoaXMuc3ltYm9sID0gc3ltYm9sXG4gICAgICB0aGlzLmRlbm9taW5hdGlvbi53cml0ZVVJbnQ4KGRlbm9taW5hdGlvbiwgMClcbiAgICAgIHRoaXMuaW5pdGlhbFN0YXRlID0gaW5pdGlhbFN0YXRlXG4gICAgfVxuICB9XG59XG4iXX0=

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


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