UNPKG

osh-js

Version:
3,883 lines 355 kB
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        if (typeof b !== "function" && b !== null)
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (g && (g = 0, op[0] && (_ = 0)), _) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
        if (ar || !(i in from)) {
            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
            ar[i] = from[i];
        }
    }
    return to.concat(ar || Array.prototype.slice.call(from));
};
!function (e) { if ("object" == typeof exports && "undefined" != typeof module)
    module.exports = e();
else if ("function" == typeof define && define.amd)
    define([], e);
else {
    ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).mqtt = e();
} }(function () { return function () { return function e(t, r, n) { function i(s, a) { if (!r[s]) {
    if (!t[s]) {
        var l = "function" == typeof require && require;
        if (!a && l)
            return l(s, !0);
        if (o)
            return o(s, !0);
        var u = new Error("Cannot find module '" + s + "'");
        throw u.code = "MODULE_NOT_FOUND", u;
    }
    var c = r[s] = { exports: {} };
    t[s][0].call(c.exports, function (e) { return i(t[s][1][e] || e); }, c, c.exports, e, t, r, n);
} return r[s].exports; } for (var o = "function" == typeof require && require, s = 0; s < n.length; s++)
    i(n[s]); return i; }; }()({ 1: [function (e, t, r) { (function (r, n) { (function () {
            "use strict";
            var i = e("events").EventEmitter, o = e("./store"), s = e("./topic-alias-recv"), a = e("./topic-alias-send"), l = e("mqtt-packet"), u = e("./default-message-id-provider"), c = e("readable-stream").Writable, h = e("inherits"), f = e("reinterval"), p = e("rfdc/default"), d = e("./validations"), g = e("xtend"), y = e("debug")("mqttjs:client"), b = r ? r.nextTick : function (e) { setTimeout(e, 0); }, m = n.setImmediate || function (e) { b(e); }, v = { keepalive: 60, reschedulePings: !0, protocolId: "MQTT", protocolVersion: 4, reconnectPeriod: 1e3, connectTimeout: 3e4, clean: !0, resubscribe: !0 }, w = ["ECONNREFUSED", "EADDRINUSE", "ECONNRESET", "ENOTFOUND"], _ = { 0: "", 1: "Unacceptable protocol version", 2: "Identifier rejected", 3: "Server unavailable", 4: "Bad username or password", 5: "Not authorized", 16: "No matching subscribers", 17: "No subscription existed", 128: "Unspecified error", 129: "Malformed Packet", 130: "Protocol Error", 131: "Implementation specific error", 132: "Unsupported Protocol Version", 133: "Client Identifier not valid", 134: "Bad User Name or Password", 135: "Not authorized", 136: "Server unavailable", 137: "Server busy", 138: "Banned", 139: "Server shutting down", 140: "Bad authentication method", 141: "Keep Alive timeout", 142: "Session taken over", 143: "Topic Filter invalid", 144: "Topic Name invalid", 145: "Packet identifier in use", 146: "Packet Identifier not found", 147: "Receive Maximum exceeded", 148: "Topic Alias invalid", 149: "Packet too large", 150: "Message rate too high", 151: "Quota exceeded", 152: "Administrative action", 153: "Payload format invalid", 154: "Retain not supported", 155: "QoS not supported", 156: "Use another server", 157: "Server moved", 158: "Shared Subscriptions not supported", 159: "Connection rate exceeded", 160: "Maximum connect time", 161: "Subscription Identifiers not supported", 162: "Wildcard Subscriptions not supported" };
            function k(e, t) { var r; t.properties && (r = t.properties.topicAlias); var n = t.topic.toString(); if (0 === n.length) {
                if (void 0 === r)
                    return new Error("Unregistered Topic Alias");
                if (void 0 === (n = e.topicAliasSend.getTopicByAlias(r)))
                    return new Error("Unregistered Topic Alias");
                t.topic = n;
            } r && delete t.properties.topicAlias; }
            function S(e, t, r) { y("sendPacket :: packet: %O", t), y("sendPacket :: emitting `packetsend`"), e.emit("packetsend", t), y("sendPacket :: writing to stream"); var n = l.writeToStream(t, e.stream, e.options); y("sendPacket :: writeToStream result %s", n), !n && r ? (y("sendPacket :: handle events on `drain` once through callback."), e.stream.once("drain", r)) : r && (y("sendPacket :: invoking cb"), r()); }
            function E(e, t, r, n) { y("storeAndSend :: store packet with cmd %s to outgoingStore", t.cmd); var i, o = t; if ("publish" === o.cmd && (o = p(t), i = k(e, o)))
                return r && r(i); e.outgoingStore.put(o, function (i) { if (i)
                return r && r(i); n(), S(e, t, r); }); }
            function C(e) { y("nop ::", e); }
            function T(e, t) { var r; var n = this; if (!(this instanceof T))
                return new T(e, t); for (r in this.options = t || {}, v)
                void 0 === this.options[r] ? this.options[r] = v[r] : this.options[r] = t[r]; y("MqttClient :: options.protocol", t.protocol), y("MqttClient :: options.protocolVersion", t.protocolVersion), y("MqttClient :: options.username", t.username), y("MqttClient :: options.keepalive", t.keepalive), y("MqttClient :: options.reconnectPeriod", t.reconnectPeriod), y("MqttClient :: options.rejectUnauthorized", t.rejectUnauthorized), y("MqttClient :: options.topicAliasMaximum", t.topicAliasMaximum), this.options.clientId = "string" == typeof t.clientId ? t.clientId : "mqttjs_" + Math.random().toString(16).substr(2, 8), y("MqttClient :: clientId", this.options.clientId), this.options.customHandleAcks = 5 === t.protocolVersion && t.customHandleAcks ? t.customHandleAcks : function () { arguments[3](0); }, this.streamBuilder = e, this.messageIdProvider = void 0 === this.options.messageIdProvider ? new u : this.options.messageIdProvider, this.outgoingStore = t.outgoingStore || new o, this.incomingStore = t.incomingStore || new o, this.queueQoSZero = void 0 === t.queueQoSZero || t.queueQoSZero, this._resubscribeTopics = {}, this.messageIdToTopic = {}, this.pingTimer = null, this.connected = !1, this.disconnecting = !1, this.queue = [], this.connackTimer = null, this.reconnectTimer = null, this._storeProcessing = !1, this._packetIdsDuringStoreProcessing = {}, this._storeProcessingQueue = [], this.outgoing = {}, this._firstConnection = !0, t.topicAliasMaximum > 0 && (t.topicAliasMaximum > 65535 ? y("MqttClient :: options.topicAliasMaximum is out of range") : this.topicAliasRecv = new s(t.topicAliasMaximum)), this.on("connect", function () { var e = this.queue; y("connect :: sending queued packets"), function t() { var r = e.shift(); y("deliver :: entry %o", r); var i = null; if (!r)
                return void n._resubscribe(); i = r.packet, y("deliver :: call _sendPacket for %o", i); var o = !0; i.messageId && 0 !== i.messageId && (n.messageIdProvider.register(i.messageId) || (o = !1)), o ? n._sendPacket(i, function (e) { r.cb && r.cb(e), t(); }) : (y("messageId: %d has already used. The message is skipped and removed.", i.messageId), t()); }(); }), this.on("close", function () { y("close :: connected set to `false`"), this.connected = !1, y("close :: clearing connackTimer"), clearTimeout(this.connackTimer), y("close :: clearing ping timer"), null !== n.pingTimer && (n.pingTimer.clear(), n.pingTimer = null), this.topicAliasRecv && this.topicAliasRecv.clear(), y("close :: calling _setupReconnect"), this._setupReconnect(); }), i.call(this), y("MqttClient :: setting up stream"), this._setupStream(); }
            h(T, i), T.prototype._setupStream = function () {
                var _this = this;
                var e = this, t = new c, r = l.parser(this.options);
                var n = null;
                var i = [];
                function o() { if (i.length)
                    b(s);
                else {
                    var e_1 = n;
                    n = null, e_1();
                } }
                function s() { y("work :: getting next packet in queue"); var t = i.shift(); if (t)
                    y("work :: packet pulled from queue"), e._handlePacket(t, o);
                else {
                    y("work :: no packets in queue");
                    var e_2 = n;
                    n = null, y("work :: done flag is %s", !!e_2), e_2 && e_2();
                } }
                y("_setupStream :: calling method to clear reconnect"), this._clearReconnect(), y("_setupStream :: using streamBuilder provided to client to create stream"), this.stream = this.streamBuilder(this), r.on("packet", function (e) { y("parser :: on packet push to packets array."), i.push(e); }), t._write = function (e, t, i) { n = i, y("writable stream :: parsing buffer"), r.parse(e), s(); }, y("_setupStream :: pipe stream to writable stream"), this.stream.pipe(t), this.stream.on("error", function (t) { y("streamErrorHandler :: error", t.message), w.includes(t.code) ? (y("streamErrorHandler :: emitting error"), e.emit("error", t)) : C(t); }), this.stream.on("close", function () { var t; y("(%s)stream :: on close", e.options.clientId), (t = e.outgoing) && (y("flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"), Object.keys(t).forEach(function (e) { t[e].volatile && "function" == typeof t[e].cb && (t[e].cb(new Error("Connection closed")), delete t[e]); })), y("stream: emit close to MqttClient"), e.emit("close"); }), y("_setupStream: sending packet `connect`");
                var a = Object.create(this.options);
                if (a.cmd = "connect", this.topicAliasRecv && (a.properties || (a.properties = {}), this.topicAliasRecv && (a.properties.topicAliasMaximum = this.topicAliasRecv.max)), S(this, a), r.on("error", this.emit.bind(this, "error")), this.options.properties) {
                    if (!this.options.properties.authenticationMethod && this.options.properties.authenticationData)
                        return e.end(function () { return _this.emit("error", new Error("Packet has no Authentication Method")); }), this;
                    if (this.options.properties.authenticationMethod && this.options.authPacket && "object" == typeof this.options.authPacket) {
                        S(this, g({ cmd: "auth", reasonCode: 0 }, this.options.authPacket));
                    }
                }
                this.stream.setMaxListeners(1e3), clearTimeout(this.connackTimer), this.connackTimer = setTimeout(function () { y("!!connectTimeout hit!! Calling _cleanUp with force `true`"), e._cleanUp(!0); }, this.options.connectTimeout);
            }, T.prototype._handlePacket = function (e, t) { var r = this.options; if (5 === r.protocolVersion && r.properties && r.properties.maximumPacketSize && r.properties.maximumPacketSize < e.length)
                return this.emit("error", new Error("exceeding packets size " + e.cmd)), this.end({ reasonCode: 149, properties: { reasonString: "Maximum packet size was exceeded" } }), this; switch (y("_handlePacket :: emitting packetreceive"), this.emit("packetreceive", e), e.cmd) {
                case "publish":
                    this._handlePublish(e, t);
                    break;
                case "puback":
                case "pubrec":
                case "pubcomp":
                case "suback":
                case "unsuback":
                    this._handleAck(e), t();
                    break;
                case "pubrel":
                    this._handlePubrel(e, t);
                    break;
                case "connack":
                    this._handleConnack(e), t();
                    break;
                case "auth":
                    this._handleAuth(e), t();
                    break;
                case "pingresp":
                    this._handlePingresp(e), t();
                    break;
                case "disconnect": this._handleDisconnect(e), t();
            } }, T.prototype._checkDisconnecting = function (e) { return this.disconnecting && (e ? e(new Error("client disconnecting")) : this.emit("error", new Error("client disconnecting"))), this.disconnecting; }, T.prototype.publish = function (e, t, r, n) { y("publish :: message `%s` to topic `%s`", t, e); var i = this.options; "function" == typeof r && (n = r, r = null); if (r = g({ qos: 0, retain: !1, dup: !1 }, r), this._checkDisconnecting(n))
                return this; var o = this, s = function () { var s = 0; if ((1 === r.qos || 2 === r.qos) && null === (s = o._nextId()))
                return y("No messageId left"), !1; var a = { cmd: "publish", topic: e, payload: t, qos: r.qos, retain: r.retain, messageId: s, dup: r.dup }; switch (5 === i.protocolVersion && (a.properties = r.properties), y("publish :: qos", r.qos), r.qos) {
                case 1:
                case 2:
                    o.outgoing[a.messageId] = { volatile: !1, cb: n || C }, y("MqttClient:publish: packet cmd: %s", a.cmd), o._sendPacket(a, void 0, r.cbStorePut);
                    break;
                default: y("MqttClient:publish: packet cmd: %s", a.cmd), o._sendPacket(a, n, r.cbStorePut);
            } return !0; }; return (this._storeProcessing || this._storeProcessingQueue.length > 0 || !s()) && this._storeProcessingQueue.push({ invoke: s, cbStorePut: r.cbStorePut, callback: n }), this; }, T.prototype.subscribe = function () { var e = this, t = new Array(arguments.length); for (var e_3 = 0; e_3 < arguments.length; e_3++)
                t[e_3] = arguments[e_3]; var r = []; var n = t.shift(); var i = n.resubscribe; var o = t.pop() || C, s = t.pop(); var a = this.options.protocolVersion; delete n.resubscribe, "string" == typeof n && (n = [n]), "function" != typeof o && (s = o, o = C); var l = d.validateTopics(n); if (null !== l)
                return m(o, new Error("Invalid topic " + l)), this; if (this._checkDisconnecting(o))
                return y("subscribe: discconecting true"), this; var u = { qos: 0 }; if (5 === a && (u.nl = !1, u.rap = !1, u.rh = 0), s = g(u, s), Array.isArray(n) ? n.forEach(function (t) { if (y("subscribe: array topic %s", t), !Object.prototype.hasOwnProperty.call(e._resubscribeTopics, t) || e._resubscribeTopics[t].qos < s.qos || i) {
                var e_4 = { topic: t, qos: s.qos };
                5 === a && (e_4.nl = s.nl, e_4.rap = s.rap, e_4.rh = s.rh, e_4.properties = s.properties), y("subscribe: pushing topic `%s` and qos `%s` to subs list", e_4.topic, e_4.qos), r.push(e_4);
            } }) : Object.keys(n).forEach(function (t) { if (y("subscribe: object topic %s", t), !Object.prototype.hasOwnProperty.call(e._resubscribeTopics, t) || e._resubscribeTopics[t].qos < n[t].qos || i) {
                var e_5 = { topic: t, qos: n[t].qos };
                5 === a && (e_5.nl = n[t].nl, e_5.rap = n[t].rap, e_5.rh = n[t].rh, e_5.properties = s.properties), y("subscribe: pushing `%s` to subs list", e_5), r.push(e_5);
            } }), !r.length)
                return o(null, []), this; var c = function () { var t = e._nextId(); if (null === t)
                return y("No messageId left"), !1; var n = { cmd: "subscribe", subscriptions: r, qos: 1, retain: !1, dup: !1, messageId: t }; if (s.properties && (n.properties = s.properties), e.options.resubscribe) {
                y("subscribe :: resubscribe true");
                var t_1 = [];
                r.forEach(function (r) { if (e.options.reconnectPeriod > 0) {
                    var n_1 = { qos: r.qos };
                    5 === a && (n_1.nl = r.nl || !1, n_1.rap = r.rap || !1, n_1.rh = r.rh || 0, n_1.properties = r.properties), e._resubscribeTopics[r.topic] = n_1, t_1.push(r.topic);
                } }), e.messageIdToTopic[n.messageId] = t_1;
            } return e.outgoing[n.messageId] = { volatile: !0, cb: function (e, t) { if (!e) {
                    var e_6 = t.granted;
                    for (var t_2 = 0; t_2 < e_6.length; t_2 += 1)
                        r[t_2].qos = e_6[t_2];
                } o(e, r); } }, y("subscribe :: call _sendPacket"), e._sendPacket(n), !0; }; return (this._storeProcessing || this._storeProcessingQueue.length > 0 || !c()) && this._storeProcessingQueue.push({ invoke: c, callback: o }), this; }, T.prototype.unsubscribe = function () { var e = this, t = new Array(arguments.length); for (var e_7 = 0; e_7 < arguments.length; e_7++)
                t[e_7] = arguments[e_7]; var r = t.shift(), n = t.pop() || C, i = t.pop(); "string" == typeof r && (r = [r]), "function" != typeof n && (i = n, n = C); var o = d.validateTopics(r); if (null !== o)
                return m(n, new Error("Invalid topic " + o)), this; if (e._checkDisconnecting(n))
                return this; var s = function () { var t = e._nextId(); if (null === t)
                return y("No messageId left"), !1; var o = { cmd: "unsubscribe", qos: 1, messageId: t }; return "string" == typeof r ? o.unsubscriptions = [r] : Array.isArray(r) && (o.unsubscriptions = r), e.options.resubscribe && o.unsubscriptions.forEach(function (t) { delete e._resubscribeTopics[t]; }), "object" == typeof i && i.properties && (o.properties = i.properties), e.outgoing[o.messageId] = { volatile: !0, cb: n }, y("unsubscribe: call _sendPacket"), e._sendPacket(o), !0; }; return (this._storeProcessing || this._storeProcessingQueue.length > 0 || !s()) && this._storeProcessingQueue.push({ invoke: s, callback: n }), this; }, T.prototype.end = function (e, t, r) { var n = this; function i() { y("end :: (%s) :: finish :: calling _cleanUp with force %s", n.options.clientId, e), n._cleanUp(e, function () { y("end :: finish :: calling process.nextTick on closeStores"), b(function () { y("end :: closeStores: closing incoming and outgoing stores"), n.disconnected = !0, n.incomingStore.close(function (e) { n.outgoingStore.close(function (t) { if (y("end :: closeStores: emitting end"), n.emit("end"), r) {
                var n_2 = e || t;
                y("end :: closeStores: invoking callback with args"), r(n_2);
            } }); }), n._deferredReconnect && n._deferredReconnect(); }.bind(n)); }, t); } return y("end :: (%s)", this.options.clientId), null != e && "boolean" == typeof e || (r = t || C, t = e, e = !1, "object" != typeof t && (r = t, t = null, "function" != typeof r && (r = C))), "object" != typeof t && (r = t, t = null), y("end :: cb? %s", !!r), r = r || C, this.disconnecting ? (r(), this) : (this._clearReconnect(), this.disconnecting = !0, !e && Object.keys(this.outgoing).length > 0 ? (y("end :: (%s) :: calling finish in 10ms once outgoing is empty", n.options.clientId), this.once("outgoingEmpty", setTimeout.bind(null, i, 10))) : (y("end :: (%s) :: immediately calling finish", n.options.clientId), i()), this); }, T.prototype.removeOutgoingMessage = function (e) { var t = this.outgoing[e] ? this.outgoing[e].cb : null; return delete this.outgoing[e], this.outgoingStore.del({ messageId: e }, function () { t(new Error("Message removed")); }), this; }, T.prototype.reconnect = function (e) { y("client reconnect"); var t = this, r = function () { e ? (t.options.incomingStore = e.incomingStore, t.options.outgoingStore = e.outgoingStore) : (t.options.incomingStore = null, t.options.outgoingStore = null), t.incomingStore = t.options.incomingStore || new o, t.outgoingStore = t.options.outgoingStore || new o, t.disconnecting = !1, t.disconnected = !1, t._deferredReconnect = null, t._reconnect(); }; return this.disconnecting && !this.disconnected ? this._deferredReconnect = r : r(), this; }, T.prototype._reconnect = function () {
                var _this = this;
                y("_reconnect: emitting reconnect to client"), this.emit("reconnect"), this.connected ? (this.end(function () { _this._setupStream(); }), y("client already connected. disconnecting first.")) : (y("_reconnect: calling _setupStream"), this._setupStream());
            }, T.prototype._setupReconnect = function () { var e = this; !e.disconnecting && !e.reconnectTimer && e.options.reconnectPeriod > 0 ? (this.reconnecting || (y("_setupReconnect :: emit `offline` state"), this.emit("offline"), y("_setupReconnect :: set `reconnecting` to `true`"), this.reconnecting = !0), y("_setupReconnect :: setting reconnectTimer for %d ms", e.options.reconnectPeriod), e.reconnectTimer = setInterval(function () { y("reconnectTimer :: reconnect triggered!"), e._reconnect(); }, e.options.reconnectPeriod)) : y("_setupReconnect :: doing nothing..."); }, T.prototype._clearReconnect = function () { y("_clearReconnect : clearing reconnect timer"), this.reconnectTimer && (clearInterval(this.reconnectTimer), this.reconnectTimer = null); }, T.prototype._cleanUp = function (e, t) { var r = arguments[2]; if (t && (y("_cleanUp :: done callback provided for on stream close"), this.stream.on("close", t)), y("_cleanUp :: forced? %s", e), e)
                0 === this.options.reconnectPeriod && this.options.clean && (n = this.outgoing) && (y("flush: queue exists? %b", !!n), Object.keys(n).forEach(function (e) { "function" == typeof n[e].cb && (n[e].cb(new Error("Connection closed")), delete n[e]); })), y("_cleanUp :: (%s) :: destroying stream", this.options.clientId), this.stream.destroy();
            else {
                var e_8 = g({ cmd: "disconnect" }, r);
                y("_cleanUp :: (%s) :: call _sendPacket with disconnect packet", this.options.clientId), this._sendPacket(e_8, m.bind(null, this.stream.end.bind(this.stream)));
            } var n; this.disconnecting || (y("_cleanUp :: client not disconnecting. Clearing and resetting reconnect."), this._clearReconnect(), this._setupReconnect()), null !== this.pingTimer && (y("_cleanUp :: clearing pingTimer"), this.pingTimer.clear(), this.pingTimer = null), t && !this.connected && (y("_cleanUp :: (%s) :: removing stream `done` callback `close` listener", this.options.clientId), this.stream.removeListener("close", t), t()); }, T.prototype._sendPacket = function (e, t, r) { y("_sendPacket :: (%s) ::  start", this.options.clientId), r = r || C, t = t || C; var n = function (e, t) { if (5 === e.options.protocolVersion && "publish" === t.cmd) {
                var r_1;
                t.properties && (r_1 = t.properties.topicAlias);
                var n_3 = t.topic.toString();
                if (e.topicAliasSend)
                    if (r_1) {
                        if (0 !== n_3.length && (y("applyTopicAlias :: register topic: %s - alias: %d", n_3, r_1), !e.topicAliasSend.put(n_3, r_1)))
                            return y("applyTopicAlias :: error out of range. topic: %s - alias: %d", n_3, r_1), new Error("Sending Topic Alias out of range");
                    }
                    else
                        0 !== n_3.length && (e.options.autoAssignTopicAlias ? (r_1 = e.topicAliasSend.getAliasByTopic(n_3)) ? (t.topic = "", t.properties = __assign(__assign({}, t.properties), { topicAlias: r_1 }), y("applyTopicAlias :: auto assign(use) topic: %s - alias: %d", n_3, r_1)) : (r_1 = e.topicAliasSend.getLruAlias(), e.topicAliasSend.put(n_3, r_1), t.properties = __assign(__assign({}, t.properties), { topicAlias: r_1 }), y("applyTopicAlias :: auto assign topic: %s - alias: %d", n_3, r_1)) : e.options.autoUseTopicAlias && (r_1 = e.topicAliasSend.getAliasByTopic(n_3)) && (t.topic = "", t.properties = __assign(__assign({}, t.properties), { topicAlias: r_1 }), y("applyTopicAlias :: auto use topic: %s - alias: %d", n_3, r_1)));
                else if (r_1)
                    return y("applyTopicAlias :: error out of range. topic: %s - alias: %d", n_3, r_1), new Error("Sending Topic Alias out of range");
            } }(this, e); if (n)
                t(n);
            else {
                if (!this.connected)
                    return "auth" === e.cmd ? (this._shiftPingInterval(), void S(this, e, t)) : (y("_sendPacket :: client not connected. Storing packet offline."), void this._storePacket(e, t, r));
                switch (this._shiftPingInterval(), e.cmd) {
                    case "publish": break;
                    case "pubrel": return void E(this, e, t, r);
                    default: return void S(this, e, t);
                }
                switch (e.qos) {
                    case 2:
                    case 1:
                        E(this, e, t, r);
                        break;
                    case 0:
                    default: S(this, e, t);
                }
                y("_sendPacket :: (%s) ::  end", this.options.clientId);
            } }, T.prototype._storePacket = function (e, t, r) { y("_storePacket :: packet: %o", e), y("_storePacket :: cb? %s", !!t), r = r || C; var n = e; if ("publish" === n.cmd) {
                var r_2 = k(this, n = p(e));
                if (r_2)
                    return t && t(r_2);
            } 0 === (n.qos || 0) && this.queueQoSZero || "publish" !== n.cmd ? this.queue.push({ packet: n, cb: t }) : n.qos > 0 ? (t = this.outgoing[n.messageId] ? this.outgoing[n.messageId].cb : null, this.outgoingStore.put(n, function (e) { if (e)
                return t && t(e); r(); })) : t && t(new Error("No connection to broker")); }, T.prototype._setupPingTimer = function () { y("_setupPingTimer :: keepalive %d (seconds)", this.options.keepalive); var e = this; !this.pingTimer && this.options.keepalive && (this.pingResp = !0, this.pingTimer = f(function () { e._checkPing(); }, 1e3 * this.options.keepalive)); }, T.prototype._shiftPingInterval = function () { this.pingTimer && this.options.keepalive && this.options.reschedulePings && this.pingTimer.reschedule(1e3 * this.options.keepalive); }, T.prototype._checkPing = function () { y("_checkPing :: checking ping..."), this.pingResp ? (y("_checkPing :: ping response received. Clearing flag and sending `pingreq`"), this.pingResp = !1, this._sendPacket({ cmd: "pingreq" })) : (y("_checkPing :: calling _cleanUp with force true"), this._cleanUp(!0)); }, T.prototype._handlePingresp = function () { this.pingResp = !0; }, T.prototype._handleConnack = function (e) { y("_handleConnack"); var t = this.options, r = 5 === t.protocolVersion ? e.reasonCode : e.returnCode; if (clearTimeout(this.connackTimer), delete this.topicAliasSend, e.properties) {
                if (e.properties.topicAliasMaximum) {
                    if (e.properties.topicAliasMaximum > 65535)
                        return void this.emit("error", new Error("topicAliasMaximum from broker is out of range"));
                    e.properties.topicAliasMaximum > 0 && (this.topicAliasSend = new a(e.properties.topicAliasMaximum));
                }
                e.properties.serverKeepAlive && t.keepalive && (t.keepalive = e.properties.serverKeepAlive, this._shiftPingInterval()), e.properties.maximumPacketSize && (t.properties || (t.properties = {}), t.properties.maximumPacketSize = e.properties.maximumPacketSize);
            } if (0 === r)
                this.reconnecting = !1, this._onConnect(e);
            else if (r > 0) {
                var e_9 = new Error("Connection refused: " + _[r]);
                e_9.code = r, this.emit("error", e_9);
            } }, T.prototype._handleAuth = function (e) { var t = this.options.protocolVersion, r = 5 === t ? e.reasonCode : e.returnCode; if (5 !== t) {
                var e_10 = new Error("Protocol error: Auth packets are only supported in MQTT 5. Your version:" + t);
                return e_10.code = r, void this.emit("error", e_10);
            } var n = this; this.handleAuth(e, function (e, t) { if (e)
                n.emit("error", e);
            else if (24 === r)
                n.reconnecting = !1, n._sendPacket(t);
            else {
                var t_3 = new Error("Connection refused: " + _[r]);
                e.code = r, n.emit("error", t_3);
            } }); }, T.prototype.handleAuth = function (e, t) { t(); }, T.prototype._handlePublish = function (e, t) { y("_handlePublish: packet %o", e), t = void 0 !== t ? t : C; var r = e.topic.toString(); var n = e.payload, i = e.qos, o = e.messageId, s = this, a = this.options, l = [0, 16, 128, 131, 135, 144, 145, 151, 153]; if (5 === this.options.protocolVersion) {
                var t_4;
                if (e.properties && (t_4 = e.properties.topicAlias), void 0 !== t_4)
                    if (0 === r.length) {
                        if (!(t_4 > 0 && t_4 <= 65535))
                            return y("_handlePublish :: topic alias out of range. alias: %d", t_4), void this.emit("error", new Error("Received Topic Alias is out of range"));
                        {
                            var e_11 = this.topicAliasRecv.getTopicByAlias(t_4);
                            if (!e_11)
                                return y("_handlePublish :: unregistered topic alias. alias: %d", t_4), void this.emit("error", new Error("Received unregistered Topic Alias"));
                            y("_handlePublish :: topic complemented by alias. topic: %s - alias: %d", r = e_11, t_4);
                        }
                    }
                    else {
                        if (!this.topicAliasRecv.put(r, t_4))
                            return y("_handlePublish :: topic alias out of range. alias: %d", t_4), void this.emit("error", new Error("Received Topic Alias is out of range"));
                        y("_handlePublish :: registered topic: %s - alias: %d", r, t_4);
                    }
            } switch (y("_handlePublish: qos %d", i), i) {
                case 2:
                    a.customHandleAcks(r, n, e, function (r, n) { return r instanceof Error || (n = r, r = null), r ? s.emit("error", r) : -1 === l.indexOf(n) ? s.emit("error", new Error("Wrong reason code for pubrec")) : void (n ? s._sendPacket({ cmd: "pubrec", messageId: o, reasonCode: n }, t) : s.incomingStore.put(e, function () { s._sendPacket({ cmd: "pubrec", messageId: o }, t); })); });
                    break;
                case 1:
                    a.customHandleAcks(r, n, e, function (i, a) { return i instanceof Error || (a = i, i = null), i ? s.emit("error", i) : -1 === l.indexOf(a) ? s.emit("error", new Error("Wrong reason code for puback")) : (a || s.emit("message", r, n, e), void s.handleMessage(e, function (e) { if (e)
                        return t && t(e); s._sendPacket({ cmd: "puback", messageId: o, reasonCode: a }, t); })); });
                    break;
                case 0:
                    this.emit("message", r, n, e), this.handleMessage(e, t);
                    break;
                default: y("_handlePublish: unknown QoS. Doing nothing.");
            } }, T.prototype.handleMessage = function (e, t) { t(); }, T.prototype._handleAck = function (e) { var t = e.messageId, r = e.cmd; var n = null; var i = this.outgoing[t] ? this.outgoing[t].cb : null, o = this; var s; if (i) {
                switch ((y("_handleAck :: packet type", r), r)) {
                    case "pubcomp":
                    case "puback": {
                        var r_3 = e.reasonCode;
                        r_3 && r_3 > 0 && 16 !== r_3 && ((s = new Error("Publish error: " + _[r_3])).code = r_3, i(s, e)), delete this.outgoing[t], this.outgoingStore.del(e, i), this.messageIdProvider.deallocate(t), this._invokeStoreProcessingQueue();
                        break;
                    }
                    case "pubrec": {
                        n = { cmd: "pubrel", qos: 2, messageId: t };
                        var r_4 = e.reasonCode;
                        r_4 && r_4 > 0 && 16 !== r_4 ? ((s = new Error("Publish error: " + _[r_4])).code = r_4, i(s, e)) : this._sendPacket(n);
                        break;
                    }
                    case "suback":
                        delete this.outgoing[t], this.messageIdProvider.deallocate(t);
                        for (var r_5 = 0; r_5 < e.granted.length; r_5++)
                            if (0 != (128 & e.granted[r_5])) {
                                var e_12 = this.messageIdToTopic[t];
                                e_12 && e_12.forEach(function (e) { delete o._resubscribeTopics[e]; });
                            }
                        this._invokeStoreProcessingQueue(), i(null, e);
                        break;
                    case "unsuback":
                        delete this.outgoing[t], this.messageIdProvider.deallocate(t), this._invokeStoreProcessingQueue(), i(null);
                        break;
                    default: o.emit("error", new Error("unrecognized packet type"));
                }
                this.disconnecting && 0 === Object.keys(this.outgoing).length && this.emit("outgoingEmpty");
            }
            else
                y("_handleAck :: Server sent an ack in error. Ignoring."); }, T.prototype._handlePubrel = function (e, t) { y("handling pubrel packet"), t = void 0 !== t ? t : C; var r = this, n = { cmd: "pubcomp", messageId: e.messageId }; r.incomingStore.get(e, function (e, i) { e ? r._sendPacket(n, t) : (r.emit("message", i.topic, i.payload, i), r.handleMessage(i, function (e) { if (e)
                return t(e); r.incomingStore.del(i, C), r._sendPacket(n, t); })); }); }, T.prototype._handleDisconnect = function (e) { this.emit("disconnect", e); }, T.prototype._nextId = function () { return this.messageIdProvider.allocate(); }, T.prototype.getLastMessageId = function () { return this.messageIdProvider.getLastAllocated(); }, T.prototype._resubscribe = function () { y("_resubscribe"); var e = Object.keys(this._resubscribeTopics); if (!this._firstConnection && (this.options.clean || 5 === this.options.protocolVersion && !this.connackPacket.sessionPresent) && e.length > 0)
                if (this.options.resubscribe)
                    if (5 === this.options.protocolVersion) {
                        y("_resubscribe: protocolVersion 5");
                        for (var t_5 = 0; t_5 < e.length; t_5++) {
                            var r_6 = {};
                            r_6[e[t_5]] = this._resubscribeTopics[e[t_5]], r_6.resubscribe = !0, this.subscribe(r_6, { properties: r_6[e[t_5]].properties });
                        }
                    }
                    else
                        this._resubscribeTopics.resubscribe = !0, this.subscribe(this._resubscribeTopics);
                else
                    this._resubscribeTopics = {}; this._firstConnection = !1; }, T.prototype._onConnect = function (e) { if (this.disconnected)
                return void this.emit("connect", e); var t = this; this.connackPacket = e, this.messageIdProvider.clear(), this._setupPingTimer(), this.connected = !0, function r() { var n = t.outgoingStore.createStream(); function i() { t._storeProcessing = !1, t._packetIdsDuringStoreProcessing = {}; } function o() { n.destroy(), n = null, t._flushStoreProcessingQueue(), i(); } t.once("close", o), n.on("error", function (e) { i(), t._flushStoreProcessingQueue(), t.removeListener("close", o), t.emit("error", e); }), n.on("end", function () { var n = !0; for (var e_13 in t._packetIdsDuringStoreProcessing)
                if (!t._packetIdsDuringStoreProcessing[e_13]) {
                    n = !1;
                    break;
                } n ? (i(), t.removeListener("close", o), t._invokeAllStoreProcessingQueue(), t.emit("connect", e)) : r(); }), function e() { if (!n)
                return; t._storeProcessing = !0; var r = n.read(1); var i; r ? t._packetIdsDuringStoreProcessing[r.messageId] ? e() : t.disconnecting || t.reconnectTimer ? n.destroy && n.destroy() : (i = t.outgoing[r.messageId] ? t.outgoing[r.messageId].cb : null, t.outgoing[r.messageId] = { volatile: !1, cb: function (t, r) { i && i(t, r), e(); } }, t._packetIdsDuringStoreProcessing[r.messageId] = !0, t.messageIdProvider.register(r.messageId) ? t._sendPacket(r) : y("messageId: %d has already used.", r.messageId)) : n.once("readable", e); }(); }(); }, T.prototype._invokeStoreProcessingQueue = function () { if (this._storeProcessingQueue.length > 0) {
                var e_14 = this._storeProcessingQueue[0];
                if (e_14 && e_14.invoke())
                    return this._storeProcessingQueue.shift(), !0;
            } return !1; }, T.prototype._invokeAllStoreProcessingQueue = function () { for (; this._invokeStoreProcessingQueue();)
                ; }, T.prototype._flushStoreProcessingQueue = function () { for (var _a = 0, _b = this._storeProcessingQueue; _a < _b.length; _a++) {
                var e_15 = _b[_a];
                e_15.cbStorePut && e_15.cbStorePut(new Error("Connection closed")), e_15.callback && e_15.callback(new Error("Connection closed"));
            } this._storeProcessingQueue.splice(0); }, t.exports = T;
        }).call(this); }).call(this, e("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}); }, { "./default-message-id-provider": 7, "./store": 8, "./topic-alias-recv": 9, "./topic-alias-send": 10, "./validations": 11, _process: 50, debug: 18, events: 22, inherits: 24, "mqtt-packet": 40, "readable-stream": 69, reinterval: 70, "rfdc/default": 71, xtend: 81 }], 2: [function (e, t, r) { (function (r) { (function () {
            "use strict";
            var n = e("readable-stream").Transform, i = e("duplexify");
            var o, s, a, l = !1;
            t.exports = function (e, t) { if (t.hostname = t.hostname || t.host, !t.hostname)
                throw new Error("Could not determine host. Specify host manually."); var u = "MQIsdp" === t.protocolId && 3 === t.protocolVersion ? "mqttv3.1" : "mqtt"; !function (e) { e.hostname || (e.hostname = "localhost"), e.path || (e.path = "/"), e.wsOptions || (e.wsOptions = {}); }(t); var c = function (e, t) { var r = "alis" === e.protocol ? "wss" : "ws"; var n = r + "://" + e.hostname + e.path; return e.port && 80 !== e.port && 443 !== e.port && (n = r + "://" + e.hostname + ":" + e.port + e.path), "function" == typeof e.transformWsUrl && (n = e.transformWsUrl(n, e, t)), n; }(t, e); return (o = t.my).connectSocket({ url: c, protocols: u }), s = function () { var e = new n; return e._write = function (e, t, r) { o.sendSocketMessage({ data: e.buffer, success: function () { r(); }, fail: function () { r(new Error); } }); }, e._flush = function (e) { o.closeSocket({ success: function () { e(); } }); }, e; }(), a = i.obj(), l || (l = !0, o.onSocketOpen(function () { a.setReadable(s), a.setWritable(s), a.emit("connect"); }), o.onSocketMessage(function (e) { if ("string" == typeof e.data) {
                var t_6 = r.from(e.data, "base64");
                s.push(t_6);
            }
            else {
                var t_7 = new FileReader;
                t_7.addEventListener("load", function () { var e = t_7.result; e = e instanceof ArrayBuffer ? r.from(e) : r.from(e, "utf8"), s.push(e); }), t_7.readAsArrayBuffer(e.data);
            } }), o.onSocketClose(function () { a.end(), a.destroy(); }), o.onSocketError(function (e) { a.destroy(e); })), a; };
        }).call(this); }).call(this, e("buffer").Buffer); }, { buffer: 17, duplexify: 20, "readable-stream": 69 }], 3: [function (e, t, r) {
            "use strict";
            var n = e("net"), i = e("debug")("mqttjs:tcp");
            t.exports = function (e, t) { t.port = t.port || 1883, t.hostname = t.hostname || t.host || "localhost"; var r = t.port, o = t.hostname; return i("port %d and host %s", r, o), n.createConnection(r, o); };
        }, { debug: 18, net: 16 }], 4: [function (e, t, r) {
            "use strict";
            var n = e("tls"), i = e("net"), o = e("debug")("mqttjs:tls");
            t.exports = function (e, t) { t.port = t.port || 8883, t.host = t.hostname || t.host || "localhost", 0 === i.isIP(t.host) && (t.servername = t.host), t.rejectUnauthorized = !1 !== t.rejectUnauthorized, delete t.path, o("port %d host %s rejectUnauthorized %b", t.port, t.host, t.rejectUnauthorized); var r = n.connect(t); function s(n) { t.rejectUnauthorized && e.emit("error", n), r.end(); } return r.on("secureConnect", function () { t.rejectUnauthorized && !r.authorized ? r.emit("error", new Error("TLS not authorized")) : r.removeListener("error", s); }), r.on("error", s), r; };
        }, { debug: 18, net: 16, tls: 16 }], 5: [function (e, t, r) { (function (r, n) { (function () {
            "use strict";
            var i = e("ws"), o = e("debug")("mqttjs:ws"), s = e("duplexify"), a = e("readable-stream").Transform, l = ["rejectUnauthorized", "ca", "cert", "key", "pfx", "passphrase"], u = void 0 !== r && "browser" === r.title || "function" == typeof __webpack_require__;
            function c(e, t) { var r = e.protocol + "://" + e.hostname + ":" + e.port + e.path; return "function" == typeof e.transformWsUrl && (r = e.transformWsUrl(r, e, t)), r; }
            function h(e) { var t = e; return e.hostname || (t.hostname = "localhost"), e.port || ("wss" === e.protocol ? t.port = 443 : t.port = 80), e.path || (t.path = "/"), e.wsOptions || (t.wsOptions = {}), u || "wss" !== e.protocol || l.forEach(function (r) { Object.prototype.hasOwnProperty.call(e, r) && !Object.prototype.hasOwnProperty.call(e.wsOptions, r) && (t.wsOptions[r] = e[r]); }), t; }
            t.exports = u ? function (e, t) { var r; o("browserStreamBuilder"); var i = function (e) { var t = h(e); if (t.hostname || (t.hostname = t.host), !t.hostname) {
                if ("undefined" == typeof document)
                    throw new Error("Could not determine host. Specify host manually.");
                var e_16 = new URL(document.URL);
                t.hostname = e_16.hostname, t.port || (t.port = e_16.port);
            } return void 0 === t.objectMode && (t.objectMode = !(!0 === t.binary || void 0 === t.binary)), t; }(t).browserBufferSize || 524288, l = t.browserBufferTimeout || 1e3, u = !t.objectMode, f = function (e, t) { var r = "MQIsdp" === t.protocolId && 3 === t.protocolVersion ? "mqttv3.1" : "mqtt", n = c(t, e), i = new WebSocket(n, [r]); return i.binaryType = "arraybuffer", i; }(e, t), p = function (e, t, r) { var n = new a({ objectModeMode: e.objectMode }); return n._write = t, n._flush = r, n; }(t, function e(t, r, o) { f.bufferedAmount > i && setTimeout(e, l, t, r, o), u && "string" == typeof t && (t = n.from(t, "utf8")); try {
                f.send(t);
            }
            catch (e) {
                return o(e);
            } o(); }, function (e) { f.close(), e(); }); t.objectMode || (p._writev = v), p.on("close", function () { f.close(); }); var d = void 0 !== f.addEventListener; function g() { r.setReadable(p), r.setWritable(p), r.emit("connect"); } function y() { r.end(), r.destroy(); } function b(e) { r.destroy(e); } function m(e) { var t = e.data; t = t instanceof ArrayBuffer ? n.from(t) : n.from(t, "utf8"), p.push(t); } function v(e, t) { var r = new Array(e.length); for (var t_8 = 0; t_8 < e.length; t_8++)
                "string" == typeof e[t_8].chunk ? r[t_8] = n.from(e[t_8], "utf8") : r[t_8] = e[t_8].chunk; this._write(n.concat(r), "binary", t); } return f.readyState === f.OPEN ? r = p : (r = r = s(void 0, void 0, t), t.objectMode || (r._writev = v), d ? f.addEventListener("open", g) : f.onopen = g), r.socket = f, d ? (f.addEventListener("close", y), f.addEventListener("error", b), f.addEventListener("message", m)) : (f.onclose = y, f.onerror = b, f.onmessage = m), r; } : function (e, t) { o("streamBuilder"); var r = h(t), n = c(r, e), s = function (e, t, r) { o("createWebSocket"), o("protocol: " + r.protocolId + " " + r.protocolVersion); var n = "MQIsdp" === r.protocolId && 3 === r.protocolVersion ? "mqttv3.1" : "mqtt"; return o("creating new Websocket for url: " + t + " and protocol: " + n), new i(t, [n], r.wsOptions); }(0, n, r), a = i.createWebSocketStream(s, r.wsOptions); return a.url = n, s.on("close", function () { a.destroy(); }), a; };
        }).call(this); }).call(this, e("_process"), e("buffer").Buffer); }, { _process: 50, buffer: 17, debug: 18, duplexify: 20, "readable-stream": 69, ws: 80 }], 6: [function (e, t, r) { (function (r) { (function () {
            "use strict";
            var n = e("readable-stream").Transform, i = e("duplexify");
            var o, s, a;
            t.exports = function (e, t) { if (t.hostname = t.hostname || t.host, !t.hostname)
                throw new Error("Could not determine host. Specify host manually."); var l = "MQIsdp" === t.protocolId && 3 === t.protocolVersion ? "mqttv3.1" : "mqtt"; !function (e) { e.hostname || (e.hostname = "localhost"), e.path || (e.path = "/"), e.wsOptions || (e.wsOptions = {}); }(t); var u = function (e, t) { var r = "wxs" === e.protocol ? "wss" : "ws"; var n = r + "://" + e.hostname + e.path; return e.port && 80 !== e.port && 443 !== e.port && (n = r + "://" + e.hostname + ":" + e.port + e.path), "function" == typeof e.transformWsUrl && (n = e.transformWsUrl(n, e, t)), n; }(t, e); o = wx.connectSocket({ url: u, protocols: [l] }), s = function () { var e = new n; return e._write = function (e, t, r) { o.send({ data: e.buffer, success: function () { r(); }, fail: function (e) { r(new Error(e)); } }); }, e._flush = function (e) { o.close({ success: function () { e(); } }); }, e; }(), (a = i.obj())._destroy = function (e, t) { o.close({ success: function () { t && t(e); } }); }; var c = a.destroy; return a.destroy = function () { a.destroy = c; var e = this; setTimeout(function () { o.close({ fail: function () { e._destroy(new Error); } }); }, 0); }.bind(a), o.onOpen(function () { a.setReadable(s), a.setWritable(s), a.emit("connect"); }), o.onMessage(function (e) { var t = e.data; t = t instanceof ArrayBuffer ? r.from(t) : r.from(t, "utf8"), s.push(t); }), o.onClose(function () { a.end(), a.destroy(); }), o.onError(function (e) { a.destroy(new Error(e.errMsg)); }), a; };
        }).call(this); }).call(this, e("buffer").Buffer); }, { buffer: 17, duplexify: 20, "readable-stream": 69 }], 7: [function (e, t, r) {
            "use strict";
            function n() { if (!(this instanceof n))
                return new n; this.nextId = Math.max(1, Math.floor(65535 * Math.random())); }
            n.prototype.allocate = function () { var e = this.nextId++; return 65536 === this.nextId && (this.nextId = 1), e; }, n.prototype.getLastAllocated = function () { return 1 === this.nextId ? 65535 : this.nextId - 1; }, n.prototype.register = function (e) { return !0; }, n.prototype.deallocate = function (e) { }, n.prototype.clear = function () { }, t.exports = n;
        }, {}], 8: [function (e, t, r) {
            "use strict";
            var n = e("xtend"), i = e("readable-stream").Readable, o = { objectMode: !0 }, s = { clean: !0 };
            function a(e) { if (!(this instanceof a))
                return new a(e); this.options = e || {}, this.options = n(s, e), this._inflights = new Map; }
            a.prototype.put = function (e, t) { return this._inflights.set(e.messageId, e), t && t(), this; }, a.prototype.createStream = function () { var e = new i(o), t = []; var r = !1, n = 0; return this._inflights.forEach(function (e, r) { t.push(e); }), e._read = function () { !r && n < t.length ? this.push(t[n++]) : this.push(null); }, e.destroy = function () { if (r)
                return; var e = this; r = !0, setTimeout(function () { e.emit("close"); }, 0); }, e; }, a.prototype.del = function (e, t) { return (e = this._inflights.get(e.messageId)) ? (this._inflights.delete(e.messageId), t(null, e)) : t && t(new Error("missing packet")), this; }, a.prototype.get = function (e, t) { return (e = this._inflights.get(e.messageId)) ? t(null, e) : t && t(new Error("missing packet")), this; }, a.prototype.close = function (e) { this.options.clean && (this._inflights = null), e && e(); }, t.exports = a;
        }, { "readable-stream": 69, xtend: 81 }], 9: [function (e, t, r) {
            "use strict";
            function n(e) { if (!(this instanceof n))
                return new n(e); this.aliasToTopic = {}, this.max = e; }
            n.prototype.put = function (e, t) { return !(0 === t || t > this.max) && (this.aliasToTopic[t] = e, this.length = Object.keys(this.aliasToTopic).length, !0); }, n.prototype.getTopicByAlias = function (e) { return this.aliasToTopic[e]; }, n.prototype.clear = function () { this.aliasToTopic = {}; }, t.exports = n;
        }, {}], 10: [function (e, t, r) {
            "use strict";
            var n = e("lru-cache"), i = e("number-allocator").NumberAllocator;
            function o(e) { if (!(this instanceof o))
                return new o(e); e > 0 && (this.aliasToTopic = new n({ max: e }), this.topicToAlias = {}, this.numberAllocator = new i(1, e), this.max = e, this.length = 0); }
            o.prototype.put = function (e, t) { if (0 === t || t > this.max)
                return !1; var r = this.aliasToTopic.get(t); return r && delete this.topicToAlias[r], this.aliasToTopic.set(t, e), this.topicToAlias[e] = t, this.numberAllocator.use(t), this.length = this.aliasToTopic.length, !0; }, o.prototype.getTopicByAlias = function (e) { return this.aliasToTopic.get(e); }, o.prototype.getAliasByTopic = function (e) { var t = this.topicToAlias[e]; return void 0 !== t && this.aliasToTopic.get(t), t; }, o.prototype.clear = function () { this.aliasToTopic.reset(), this.topicToAlias = {}, this.numberAllocator.clear(), this.length = 0; }, o.prototype.getLruAlias = function () { var e = this.numberAllocator.firstVacant(); return e || this.aliasToTopic.keys()[this.aliasToTopic.length - 1]; }, t.exports = o;
        }, { "lru-cache": 37, "number-allocator": 46 }], 11: [function (e, t, r) {
            "use strict";
            function n(e) { var t = e.split("/"); for (var e_17 = 0; e_17 < t.length; e_17++)
                if ("+" !== t[e_17]) {
                    if ("#" === t[e_17])
                        return e_17 === t.length - 1;
                    if (-1 !== t[e_17].indexOf("+") || -1 !== t[e_17].indexOf("#"))
                        return !1;
                } return !0; }
            t.exports = { validateTopics: function (e) { if (0 === e.length)
                    return "empty_topic_list"; for (var t_9 = 0; t_9 < e.length; t_9++)
                    if (!n(e[t_9]))
                        return e[t_9]; return null; } };
        }, {}], 12: [function (e, t, r) { (function (r) { (function () {
            "use strict";
            var n = e("../client"), i = e("../store"), o = e("url"), s = e("xtend"), a = e("debug")("mqttjs"), l = {};
            function u(e, t) { if (a("connecting to an MQTT broker..."), "object" != typeof e || t || (t = e, e = null), t = t || {}, e) {
                var r_7 = o.parse(e, !0);
                if (null != r_7.port && (r_7.port = Number(r_7.port)), null === (t = s(r_7, t)).protocol)
                    throw new Error("Missing protocol");
                t.protocol = t.protocol.replace(/:$/, "");
            } if (function (e) { var t; e.auth && ((t = e.auth.match(/^(.+):(.+)$/)) ? (e.username = t[1], e.password = t[2]) : e.username = e.auth); }(t), t.query && "string" == typeof t.query.clientId && (t.clientId = t.query.clientId), t.cert && t.key) {
                if (!t.protocol)
                    throw new Error("Missing secure protocol key");
                if (-1 === ["mqtts", "wss", "wxs", "alis"].indexOf(t.protocol))
                    switch (t.protocol) {
                        case "mqtt":
                            t.protocol = "mqtts";
                            break;
                        case "ws":
                            t.protocol = "wss";
                            break;
                        case "wx":
                            t.protocol = "wxs";
                            break;
                        case "ali":
                            t.protocol = "alis";
                            break;
                        default: throw new Error('Unknown protocol for secure connection: "' + t.protocol + '"!');
                    }
            } if (!l[t.protocol]) {
                var e_18 = -1 !== ["mqtts", "wss"].indexOf(t.protocol);
                t.protocol = ["mqtt", "mqtts", "ws", "wss", "wx", "wxs", "ali", "alis"].filter(function (t, r) { return (!e_18 || r % 2 != 0) && "function" == typeof l[t]; })[0];
            } if (!1 === t.clean && !t.clientId)
                throw new Error("Missing clientId for unclean clients"); t.protocol && (t.defaultProtocol = t.protocol); var r = new n(function (e) { return t.servers && (e._reconnectCount && e._reconnectCount !== t.servers.length || (e._reconnectCount = 0), t.host = t.servers[e._reconnectCount].host, t.port = t.servers[e._reconnectCount].port, t.protocol = t.servers[e._reconnectCount].protocol ? t.servers[e._reconnectCount].protocol : t.defaultProtocol, t.hostname = t.host, e._reconnectCount++), a("calling streambuilder for", t.protocol), l[t.protocol](e, t); }, t); return r.on("error", function () { }), r; }
            void 0 !== r && "browser" !== r.title || "function" != typeof __webpack_require__ ? (l.mqtt = e("./tcp"), l.tcp = e("./tcp"), l.ssl = e("./tls"), l.tls = e("./tls"), l.mqtts = e("./tls")) : (l.wx = e("./wx"), l.wxs = e("./wx"), l.ali = e("./ali"), l.alis = e("./ali")), l.ws = e("./ws"), l.wss = e("./ws"), t.exports = u, t.exports.connect = u, t.exports.MqttClient = n, t.exports.Store = i;
        }).call(this); }).call(this, e("_process")); }, { "../client": 1, "../store": 8, "./ali": 2, "./tcp": 3, "./tls": 4, "./ws": 5, "./wx": 6, _process: 50, debug: 18, url: 76, xtend: 81 }], 13: [function (e, t, r) {
            "use strict";
            r.byteLength = function (e) { var t = u(e), r = t[0], n = t[1]; return 3 * (r + n) / 4 - n; }, r.toByteArray = function (e) { var t, r, n = u(e), s = n[0], a = n[1], l = new o(function (e, t, r) { return 3 * (t + r) / 4 - r; }(0, s, a)), c = 0, h = a > 0 ? s - 4 : s; for (r = 0; r < h; r += 4)
                t = i[e.charCodeAt(r)] << 18 | i[e.charCodeAt(r + 1)] << 12 | i[e.charCodeAt(r + 2)] << 6 | i[e.charCodeAt(r + 3)], l[c++] = t >> 16 & 255, l[c++] = t >> 8 & 255, l[c++] = 255 & t; 2 === a && (t = i[e.charCodeAt(r)] << 2 | i[e.charCodeAt(r + 1)] >> 4, l[c++] = 255 & t); 1 === a && (t = i[e.charCodeAt(r)] << 10 | i[e.charCodeAt(r + 1)] << 4 | i[e.charCodeAt(r + 2)] >> 2, l[c++] = t >> 8 & 255, l[c++] = 255 & t); return l; }, r.fromByteArray = function (e) { for (var t, r = e.length, i = r % 3, o = [], s = 0, a = r - i; s < a; s += 16383)
                o.push(c(e, s, s + 16383 > a ? a : s + 16383)); 1 === i ? (t = e[r - 1], o.push(n[t >> 2] + n[t << 4 & 63] + "==")) : 2 === i && (t = (e[r - 2] << 8) + e[r - 1], o.push(n[t >> 10] + n[t >> 4 & 63] + n[t << 2 & 63] + "=")); return o.join(""); };
            for (var n = [], i = [], o = "undefined" != typeof Uint8Array ? Uint8Array : Array, s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", a = 0, l = s.length; a < l; ++a)
                n[a] = s[a], i[s.charCodeAt(a)] = a;
            function u(e) { var t = e.length; if (t % 4 > 0)
                throw new Error("Invalid string. Length must be a multiple of 4"); var r = e.indexOf("="); return -1 === r && (r = t), [r, r === t ? 0 : 4 - r % 4]; }
            function c(e, t, r) { for (var i, o, s = [], a = t; a < r; a += 3)
                i = (e[a] << 16 & 16711680) + (e[a + 1] << 8 & 65280) + (255 & e[a + 2]), s.push(n[(o = i) >> 18 & 63] + n[o >> 12 & 63] + n[o >> 6 & 63] + n[63 & o]); return s.join(""); }
            i["-".charCodeAt(0)] = 62, i["_".charCodeAt(0)] = 63;
        }, {}], 14: [function (e, t, r) {
            "use strict";
            var n = e("buffer").Buffer, i = Symbol.for("BufferList");
            function o(e) { if (!(this instanceof o))
                return new o(e); o._init.call(this, e); }
            o._init = function (e) { Object.defineProperty(this, i, { value: !0 }), this._bufs = [], this.length = 0, e && this.append(e); }, o.prototype._new = function (e) { return new o(e); }, o.prototype._offset = function (e) { if (0 === e)
                return [0, 0]; var t = 0; for (var r_8 = 0; r_8 < this._bufs.length; r_8++) {
                var n_4 = t + this._bufs[r_8].length;
                if (e < n_4 || r_8 === this._bufs.length - 1)
                    return [r_8, e - t];
                t = n_4;
            } }, o.prototype._reverseOffset = function (e) { var t = e[0]; var r = e[1]; for (var e_19 = 0; e_19 < t; e_19++)
                r += this._bufs[e_19].length; return r; }, o.prototype.get = function (e) { if (e > this.length || e < 0)
                return; var t = this._offset(e); return this._bufs[t[0]][t[1]]; }, o.prototype.slice = function (e, t) { return "number" == typeof e && e < 0 && (e += this.length), "number" == typeof t && t < 0 && (t += this.length), this.copy(null, 0, e, t); }, o.prototype.copy = function (e, t, r, i) { if (("number" != typeof r || r < 0) && (r = 0), ("number" != typeof i || i > this.length) && (i = this.length), r >= this.length)
                return e || n.alloc(0); if (i <= 0)
                return e || n.alloc(0); var o = !!e, s = this._offset(r), a = i - r; var l = a, u = o && t || 0, c = s[1]; if (0 === r && i === this.length) {
                if (!o)
                    return 1 === this._bufs.length ? this._bufs[0] : n.concat(this._bufs, this.length);
                for (var t_10 = 0; t_10 < this._bufs.length; t_10++)
                    this._bufs[t_10].copy(e, u), u += this._bufs[t_10].length;
                return e;
            } if (l <= this._bufs[s[0]].length - c)
                return o ? this._bufs[s[0]].copy(e, t, c, c + l) : this._bufs[s[0]].slice(c, c + l); o || (e = n.allocUnsafe(a)); for (var t_11 = s[0]; t_11 < this._bufs.length; t_11++) {
                var r_9 = this._bufs[t_11].length - c;
                if (!(l > r_9)) {
                    this._bufs[t_11].copy(e, u, c, c + l), u += r_9;
                    break;
                }
                this._bufs[t_11].copy(e, u, c), u += r_9, l -= r_9, c && (c = 0);
            } return e.length > u ? e.slice(0, u) : e; }, o.prototype.shallowSlice = function (e, t) { if (e = e || 0, t = "number" != typeof t ? this.length : t, e < 0 && (e += this.length), t < 0 && (t += this.length), e === t)
                return this._new(); var r = this._offset(e), n = this._offset(t), i = this._bufs.slice(r[0], n[0] + 1); return 0 === n[1] ? i.pop() : i[i.length - 1] = i[i.length - 1].slice(0, n[1]), 0 !== r[1] && (i[0] = i[0].slice(r[1])), this._new(i); }, o.prototype.toString = function (e, t, r) { return this.slice(t, r).toString(e); }, o.prototype.consume = function (e) { if (e = Math.trunc(e), Number.isNaN(e) || e <= 0)
                return this; for (; this._bufs.length;) {
                if (!(e >= this._bufs[0].length)) {
                    this._bufs[0] = this._bufs[0].slice(e), this.length -= e;
                    break;
                }
                e -= this._bufs[0].length, this.length -= this._bufs[0].length, this._bufs.shift();
            } return this; }, o.prototype.duplicate = function () { var e = this._new(); for (var t_12 = 0; t_12 < this._bufs.length; t_12++)
                e.append(this._bufs[t_12]); return e; }, o.prototype.append = function (e) { if (null == e)
                return this; if (e.buffer)
                this._appendBuffer(n.from(e.buffer, e.byteOffset, e.byteLength));
            else if (Array.isArray(e))
                for (var t_13 = 0; t_13 < e.length; t_13++)
                    this.append(e[t_13]);
            else if (this._isBufferList(e))
                for (var t_14 = 0; t_14 < e._bufs.length; t_14++)
                    this.append(e._bufs[t_14]);
            else
                "number" == typeof e && (e = e.toString()), this._appendBuffer(n.from(e)); return this; }, o.prototype._appendBuffer = function (e) { this._bufs.push(e), this.length += e.length; }, o.prototype.indexOf = function (e, t, r) { if (void 0 === r && "string" == typeof t && (r = t, t = void 0), "function" == typeof e || Array.isArray(e))
                throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.'); if ("number" == typeof e ? e = n.from([e]) : "string" == typeof e ? e = n.from(e, r) : this._isBufferList(e) ? e = e.slice() : Array.isArray(e.buffer) ? e = n.from(e.buffer, e.byteOffset, e.byteLength) : n.isBuffer(e) || (e = n.from(e)), t = Number(t || 0), isNaN(t) && (t = 0), t < 0 && (t = this.length + t), t < 0 && (t = 0), 0 === e.length)
                return t > this.length ? this.length : t; var i = this._offset(t); var o = i[0], s = i[1]; for (; o < this._bufs.length; o++) {
                var t_15 = this._bufs[o];
                for (; s < t_15.length;) {
                    if (t_15.length - s >= e.length) {
                        var r_10 = t_15.indexOf(e, s);
                        if (-1 !== r_10)
                            return this._reverseOffset([o, r_10]);
                        s = t_15.length - e.length + 1;
                    }
                    else {
                        var t_16 = this._reverseOffset([o, s]);
                        if (this._match(t_16, e))
                            return t_16;
                        s++;
                    }
                }
                s = 0;
            } return -1; }, o.prototype._match = function (e, t) { if (this.length - e < t.length)
                return !1; for (var r_11 = 0; r_11 < t.length; r_11++)
                if (this.get(e + r_11) !== t[r_11])
                    return !1; return !0; }, function () { var e = { readDoubleBE: 8, readDoubleLE: 8, readFloatBE: 4, readFloatLE: 4, readInt32BE: 4, readInt32LE: 4, readUInt32BE: 4, readUInt32LE: 4, readInt16BE: 2, readInt16LE: 2, readUInt16BE: 2, readUInt16LE: 2, readInt8: 1, readUInt8: 1, readIntBE: null, readIntLE: null, readUIntBE: null, readUIntLE: null }; for (var t_17 in e)
                !function (t) { o.prototype[t] = null === e[t] ? function (e, r) { return this.slice(e, e + r)[t](0, r); } : function (r) {
                    if (r === void 0) { r = 0; }
                    return this.slice(r, r + e[t])[t](0);
                }; }(t_17); }(), o.prototype._isBufferList = function (e) { return e instanceof o || o.isBufferList(e); }, o.isBufferList = function (e) { return null != e && e[i]; }, t.exports = o;
        }, { buffer: 17 }], 15: [function (e, t, r) {
            "use strict";
            var n = e("readable-stream").Duplex, i = e("inherits"), o = e("./BufferList");
            function s(e) { if (!(this instanceof s))
                return new s(e); if ("function" == typeof e) {
                this._callback = e;
                var t_18 = function (e) { this._callback && (this._callback(e), this._callback = null); }.bind(this);
                this.on("pipe", function (e) { e.on("error", t_18); }), this.on("unpipe", function (e) { e.removeListener("error", t_18); }), e = null;
            } o._init.call(this, e), n.call(this); }
            i(s, n), Object.assign(s.prototype, o.prototype), s.prototype._new = function (e) { return new s(e); }, s.prototype._write = function (e, t, r) { this._appendBuffer(e), "function" == typeof r && r(); }, s.prototype._read = function (e) { if (!this.length)
                return this.push(null); e = Math.min(e, this.length), this.push(this.slice(0, e)), this.consume(e); }, s.prototype.end = function (e) { n.prototype.end.call(this, e), this._callback && (this._callback(null, this.slice()), this._callback = null); }, s.prototype._destroy = function (e, t) { this._bufs.length = 0, this.length = 0, t(e); }, s.prototype._isBufferList = function (e) { return e instanceof s || e instanceof o || s.isBufferList(e); }, s.isBufferList = o.isBufferList, t.exports = s, t.exports.BufferListStream = s, t.exports.BufferList = o;
        }, { "./BufferList": 14, inherits: 24, "readable-stream": 69 }], 16: [function (e, t, r) { }, {}], 17: [function (e, t, r) { (function (t) { (function () {
            "use strict";
            var t = e("base64-js"), n = e("ieee754");
            r.Buffer = s, r.SlowBuffer = function (e) { +e != e && (e = 0); return s.alloc(+e); }, r.INSPECT_MAX_BYTES = 50;
            var i = 2147483647;
            function o(e) { if (e > i)
                throw new RangeError('The value "' + e + '" is invalid for option "size"'); var t = new Uint8Array(e); return t.__proto__ = s.prototype, t; }
            function s(e, t, r) { if ("number" == typeof e) {
                if ("string" == typeof t)
                    throw new TypeError('The "string" argument must be of type string. Received type number');
                return u(e);
            } return a(e, t, r); }
            function a(e, t, r) { if ("string" == typeof e)
                return function (e, t) { "string" == typeof t && "" !== t || (t = "utf8"); if (!s.isEncoding(t))
                    throw new TypeError("Unknown encoding: " + t); var r = 0 | f(e, t), n = o(r), i = n.write(e, t); i !== r && (n = n.slice(0, i)); return n; }(e, t); if (ArrayBuffer.isView(e))
                return c(e); if (null == e)
                throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof e); if (q(e, ArrayBuffer) || e && q(e.buffer, ArrayBuffer))
                return function (e, t, r) { if (t < 0 || e.byteLength < t)
                    throw new RangeError('"offset" is outside of buffer bounds'); if (e.byteLength < t + (r || 0))
                    throw new RangeError('"length" is outside of buffer bounds'); var n; n = void 0 === t && void 0 === r ? new Uint8Array(e) : void 0 === r ? new Uint8Array(e, t) : new Uint8Array(e, t, r); return n.__proto__ = s.prototype, n; }(e, t, r); if ("number" == typeof e)
                throw new TypeError('The "value" argument must not be of type number. Received type number'); var n = e.valueOf && e.valueOf(); if (null != n && n !== e)
                return s.from(n, t, r); var i = function (e) { if (s.isBuffer(e)) {
                var t = 0 | h(e.length), r = o(t);
                return 0 === r.length ? r : (e.copy(r, 0, 0, t), r);
            } if (void 0 !== e.length)
                return "number" != typeof e.length || D(e.length) ? o(0) : c(e); if ("Buffer" === e.type && Array.isArray(e.data))
                return c(e.data); }(e); if (i)
                return i; if ("undefined" != typeof Symbol && null != Symbol.toPrimitive && "function" == typeof e[Symbol.toPrimitive])
                return s.from(e[Symbol.toPrimitive]("string"), t, r); throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof e); }
            function l(e) { if ("number" != typeof e)
                throw new TypeError('"size" argument must be of type number'); if (e < 0)
                throw new RangeError('The value "' + e + '" is invalid for option "size"'); }
            function u(e) { return l(e), o(e < 0 ? 0 : 0 | h(e)); }
            function c(e) { for (var t = e.length < 0 ? 0 : 0 | h(e.length), r = o(t), n = 0; n < t; n += 1)
                r[n] = 255 & e[n]; return r; }
            function h(e) { if (e >= i)
                throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + i.toString(16) + " bytes"); return 0 | e; }
            function f(e, t) { if (s.isBuffer(e))
                return e.length; if (ArrayBuffer.isView(e) || q(e, ArrayBuffer))
                return e.byteLength; if ("string" != typeof e)
                throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof e); var r = e.length, n = arguments.length > 2 && !0 === arguments[2]; if (!n && 0 === r)
                return 0; for (var i = !1;;)
                switch (t) {
                    case "ascii":
                    case "latin1":
                    case "binary": return r;
                    case "utf8":
                    case "utf-8": return L(e).length;
                    case "ucs2":
                    case "ucs-2":
                    case "utf16le":
                    case "utf-16le": return 2 * r;
                    case "hex": return r >>> 1;
                    case "base64": return j(e).length;
                    default:
                        if (i)
                            return n ? -1 : L(e).length;
                        t = ("" + t).toLowerCase(), i = !0;
                } }
            function p(e, t, r) { var n = e[t]; e[t] = e[r], e[r] = n; }
            function d(e, t, r, n, i) { if (0 === e.length)
                return -1; if ("string" == typeof r ? (n = r, r = 0) : r > 2147483647 ? r = 2147483647 : r < -2147483648 && (r = -2147483648), D(r = +r) && (r = i ? 0 : e.length - 1), r < 0 && (r = e.length + r), r >= e.length) {
                if (i)
                    return -1;
                r = e.length - 1;
            }
            else if (r < 0) {
                if (!i)
                    return -1;
                r = 0;
            } if ("string" == typeof t && (t = s.from(t, n)), s.isBuffer(t))
                return 0 === t.length ? -1 : g(e, t, r, n, i); if ("number" == typeof t)
                return t &= 255, "function" == typeof Uint8Array.prototype.indexOf ? i ? Uint8Array.prototype.indexOf.call(e, t, r) : Uint8Array.prototype.lastIndexOf.call(e, t, r) : g(e, [t], r, n, i); throw new TypeError("val must be string, number or Buffer"); }
            function g(e, t, r, n, i) { var o, s = 1, a = e.length, l = t.length; if (void 0 !== n && ("ucs2" === (n = String(n).toLowerCase()) || "ucs-2" === n || "utf16le" === n || "utf-16le" === n)) {
                if (e.length < 2 || t.length < 2)
                    return -1;
                s = 2, a /= 2, l /= 2, r /= 2;
            } function u(e, t) { return 1 === s ? e[t] : e.readUInt16BE(t * s); } if (i) {
                var c = -1;
                for (o = r; o < a; o++)
                    if (u(e, o) === u(t, -1 === c ? 0 : o - c)) {
                        if (-1 === c && (c = o), o - c + 1 === l)
                            return c * s;
                    }
                    else
                        -1 !== c && (o -= o - c), c = -1;
            }
            else
                for (r + l > a && (r = a - l), o = r; o >= 0; o--) {
                    for (var h = !0, f = 0; f < l; f++)
                        if (u(e, o + f) !== u(t, f)) {
                            h = !1;
                            break;
                        }
                    if (h)
                        return o;
                } return -1; }
            function y(e, t, r, n) { r = Number(r) || 0; var i = e.length - r; n ? (n = Number(n)) > i && (n = i) : n = i; var o = t.length; n > o / 2 && (n = o / 2); for (var s = 0; s < n; ++s) {
                var a = parseInt(t.substr(2 * s, 2), 16);
                if (D(a))
                    return s;
                e[r + s] = a;
            } return s; }
            function b(e, t, r, n) { return U(L(t, e.length - r), e, r, n); }
            function m(e, t, r, n) { return U(function (e) { for (var t = [], r = 0; r < e.length; ++r)
                t.push(255 & e.charCodeAt(r)); return t; }(t), e, r, n); }
            function v(e, t, r, n) { return m(e, t, r, n); }
            function w(e, t, r, n) { return U(j(t), e, r, n); }
            function _(e, t, r, n) { return U(function (e, t) { for (var r, n, i, o = [], s = 0; s < e.length && !((t -= 2) < 0); ++s)
                r = e.charCodeAt(s), n = r >> 8, i = r % 256, o.push(i), o.push(n); return o; }(t, e.length - r), e, r, n); }
            function k(e, r, n) { return 0 === r && n === e.length ? t.fromByteArray(e) : t.fromByteArray(e.slice(r, n)); }
            function S(e, t, r) { r = Math.min(e.length, r); for (var n = [], i = t; i < r;) {
                var o, s, a, l, u = e[i], c = null, h = u > 239 ? 4 : u > 223 ? 3 : u > 191 ? 2 : 1;
                if (i + h <= r)
                    switch (h) {
                        case 1:
                            u < 128 && (c = u);
                            break;
                        case 2:
                            128 == (192 & (o = e[i + 1])) && (l = (31 & u) << 6 | 63 & o) > 127 && (c = l);
                            break;
                        case 3:
                            o = e[i + 1], s = e[i + 2], 128 == (192 & o) && 128 == (192 & s) && (l = (15 & u) << 12 | (63 & o) << 6 | 63 & s) > 2047 && (l < 55296 || l > 57343) && (c = l);
                            break;
                        case 4: o = e[i + 1], s = e[i + 2], a = e[i + 3], 128 == (192 & o) && 128 == (192 & s) && 128 == (192 & a) && (l = (15 & u) << 18 | (63 & o) << 12 | (63 & s) << 6 | 63 & a) > 65535 && l < 1114112 && (c = l);
                    }
                null === c ? (c = 65533, h = 1) : c > 65535 && (c -= 65536, n.push(c >>> 10 & 1023 | 55296), c = 56320 | 1023 & c), n.push(c), i += h;
            } return function (e) { var t = e.length; if (t <= E)
                return String.fromCharCode.apply(String, e); var r = "", n = 0; for (; n < t;)
                r += String.fromCharCode.apply(String, e.slice(n, n += E)); return r; }(n); }
            r.kMaxLength = i, s.TYPED_ARRAY_SUPPORT = function () { try {
                var e = new Uint8Array(1);
                return e.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42; } }, 42 === e.foo();
            }
            catch (e) {
                return !1;
            } }(), s.TYPED_ARRAY_SUPPORT || "undefined" == typeof console || "function" != typeof console.error || console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."), Object.defineProperty(s.prototype, "parent", { enumerable: !0, get: function () { if (s.isBuffer(this))
                    return this.buffer; } }), Object.defineProperty(s.prototype, "offset", { enumerable: !0, get: function () { if (s.isBuffer(this))
                    return this.byteOffset; } }), "undefined" != typeof Symbol && null != Symbol.species && s[Symbol.species] === s && Object.defineProperty(s, Symbol.species, { value: null, configurable: !0, enumerable: !1, writable: !1 }), s.poolSize = 8192, s.from = function (e, t, r) { return a(e, t, r); }, s.prototype.__proto__ = Uint8Array.prototype, s.__proto__ = Uint8Array, s.alloc = function (e, t, r) { return function (e, t, r) { return l(e), e <= 0 ? o(e) : void 0 !== t ? "string" == typeof r ? o(e).fill(t, r) : o(e).fill(t) : o(e); }(e, t, r); }, s.allocUnsafe = function (e) { return u(e); }, s.allocUnsafeSlow = function (e) { return u(e); }, s.isBuffer = function (e) { return null != e && !0 === e._isBuffer && e !== s.prototype; }, s.compare = function (e, t) { if (q(e, Uint8Array) && (e = s.from(e, e.offset, e.byteLength)), q(t, Uint8Array) && (t = s.from(t, t.offset, t.byteLength)), !s.isBuffer(e) || !s.isBuffer(t))
                throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); if (e === t)
                return 0; for (var r = e.length, n = t.length, i = 0, o = Math.min(r, n); i < o; ++i)
                if (e[i] !== t[i]) {
                    r = e[i], n = t[i];
                    break;
                } return r < n ? -1 : n < r ? 1 : 0; }, s.isEncoding = function (e) { switch (String(e).toLowerCase()) {
                case "hex":
                case "utf8":
                case "utf-8":
                case "ascii":
                case "latin1":
                case "binary":
                case "base64":
                case "ucs2":
                case "ucs-2":
                case "utf16le":
                case "utf-16le": return !0;
                default: return !1;
            } }, s.concat = function (e, t) { if (!Array.isArray(e))
                throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === e.length)
                return s.alloc(0); var r; if (void 0 === t)
                for (t = 0, r = 0; r < e.length; ++r)
                    t += e[r].length; var n = s.allocUnsafe(t), i = 0; for (r = 0; r < e.length; ++r) {
                var o = e[r];
                if (q(o, Uint8Array) && (o = s.from(o)), !s.isBuffer(o))
                    throw new TypeError('"list" argument must be an Array of Buffers');
                o.copy(n, i), i += o.length;
            } return n; }, s.byteLength = f, s.prototype._isBuffer = !0, s.prototype.swap16 = function () { var e = this.length; if (e % 2 != 0)
                throw new RangeError("Buffer size must be a multiple of 16-bits"); for (var t = 0; t < e; t += 2)
                p(this, t, t + 1); return this; }, s.prototype.swap32 = function () { var e = this.length; if (e % 4 != 0)
                throw new RangeError("Buffer size must be a multiple of 32-bits"); for (var t = 0; t < e; t += 4)
                p(this, t, t + 3), p(this, t + 1, t + 2); return this; }, s.prototype.swap64 = function () { var e = this.length; if (e % 8 != 0)
                throw new RangeError("Buffer size must be a multiple of 64-bits"); for (var t = 0; t < e; t += 8)
                p(this, t, t + 7), p(this, t + 1, t + 6), p(this, t + 2, t + 5), p(this, t + 3, t + 4); return this; }, s.prototype.toString = function () { var e = this.length; return 0 === e ? "" : 0 === arguments.length ? S(this, 0, e) : function (e, t, r) { var n = !1; if ((void 0 === t || t < 0) && (t = 0), t > this.length)
                return ""; if ((void 0 === r || r > this.length) && (r = this.length), r <= 0)
                return ""; if ((r >>>= 0) <= (t >>>= 0))
                return ""; for (e || (e = "utf8");;)
                switch (e) {
                    case "hex": return x(this, t, r);
                    case "utf8":
                    case "utf-8": return S(this, t, r);
                    case "ascii": return C(this, t, r);
                    case "latin1":
                    case "binary": return T(this, t, r);
                    case "base64": return k(this, t, r);
                    case "ucs2":
                    case "ucs-2":
                    case "utf16le":
                    case "utf-16le": return A(this, t, r);
                    default:
                        if (n)
                            throw new TypeError("Unknown encoding: " + e);
                        e = (e + "").toLowerCase(), n = !0;
                } }.apply(this, arguments); }, s.prototype.toLocaleString = s.prototype.toString, s.prototype.equals = function (e) { if (!s.isBuffer(e))
                throw new TypeError("Argument must be a Buffer"); return this === e || 0 === s.compare(this, e); }, s.prototype.inspect = function () { var e = "", t = r.INSPECT_MAX_BYTES; return e = this.toString("hex", 0, t).replace(/(.{2})/g, "$1 ").trim(), this.length > t && (e += " ... "), "<Buffer " + e + ">"; }, s.prototype.compare = function (e, t, r, n, i) { if (q(e, Uint8Array) && (e = s.from(e, e.offset, e.byteLength)), !s.isBuffer(e))
                throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof e); if (void 0 === t && (t = 0), void 0 === r && (r = e ? e.length : 0), void 0 === n && (n = 0), void 0 === i && (i = this.length), t < 0 || r > e.length || n < 0 || i > this.length)
                throw new RangeError("out of range index"); if (n >= i && t >= r)
                return 0; if (n >= i)
                return -1; if (t >= r)
                return 1; if (t >>>= 0, r >>>= 0, n >>>= 0, i >>>= 0, this === e)
                return 0; for (var o = i - n, a = r - t, l = Math.min(o, a), u = this.slice(n, i), c = e.slice(t, r), h = 0; h < l; ++h)
                if (u[h] !== c[h]) {
                    o = u[h], a = c[h];
                    break;
                } return o < a ? -1 : a < o ? 1 : 0; }, s.prototype.includes = function (e, t, r) { return -1 !== this.indexOf(e, t, r); }, s.prototype.indexOf = function (e, t, r) { return d(this, e, t, r, !0); }, s.prototype.lastIndexOf = function (e, t, r) { return d(this, e, t, r, !1); }, s.prototype.write = function (e, t, r, n) { if (void 0 === t)
                n = "utf8", r = this.length, t = 0;
            else if (void 0 === r && "string" == typeof t)
                n = t, r = this.length, t = 0;
            else {
                if (!isFinite(t))
                    throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
                t >>>= 0, isFinite(r) ? (r >>>= 0, void 0 === n && (n = "utf8")) : (n = r, r = void 0);
            } var i = this.length - t; if ((void 0 === r || r > i) && (r = i), e.length > 0 && (r < 0 || t < 0) || t > this.length)
                throw new RangeError("Attempt to write outside buffer bounds"); n || (n = "utf8"); for (var o = !1;;)
                switch (n) {
                    case "hex": return y(this, e, t, r);
                    case "utf8":
                    case "utf-8": return b(this, e, t, r);
                    case "ascii": return m(this, e, t, r);
                    case "latin1":
                    case "binary": return v(this, e, t, r);
                    case "base64": return w(this, e, t, r);
                    case "ucs2":
                    case "ucs-2":
                    case "utf16le":
                    case "utf-16le": return _(this, e, t, r);
                    default:
                        if (o)
                            throw new TypeError("Unknown encoding: " + n);
                        n = ("" + n).toLowerCase(), o = !0;
                } }, s.prototype.toJSON = function () { return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) }; };
            var E = 4096;
            function C(e, t, r) { var n = ""; r = Math.min(e.length, r); for (var i = t; i < r; ++i)
                n += String.fromCharCode(127 & e[i]); return n; }
            function T(e, t, r) { var n = ""; r = Math.min(e.length, r); for (var i = t; i < r; ++i)
                n += String.fromCharCode(e[i]); return n; }
            function x(e, t, r) { var n = e.length; (!t || t < 0) && (t = 0), (!r || r < 0 || r > n) && (r = n); for (var i = "", o = t; o < r; ++o)
                i += N(e[o]); return i; }
            function A(e, t, r) { for (var n = e.slice(t, r), i = "", o = 0; o < n.length; o += 2)
                i += String.fromCharCode(n[o] + 256 * n[o + 1]); return i; }
            function I(e, t, r) { if (e % 1 != 0 || e < 0)
                throw new RangeError("offset is not uint"); if (e + t > r)
                throw new RangeError("Trying to access beyond buffer length"); }
            function P(e, t, r, n, i, o) { if (!s.isBuffer(e))
                throw new TypeError('"buffer" argument must be a Buffer instance'); if (t > i || t < o)
                throw new RangeError('"value" argument is out of bounds'); if (r + n > e.length)
                throw new RangeError("Index out of range"); }
            function O(e, t, r, n, i, o) { if (r + n > e.length)
                throw new RangeError("Index out of range"); if (r < 0)
                throw new RangeError("Index out of range"); }
            function B(e, t, r, i, o) { return t = +t, r >>>= 0, o || O(e, 0, r, 4), n.write(e, t, r, i, 23, 4), r + 4; }
            function R(e, t, r, i, o) { return t = +t, r >>>= 0, o || O(e, 0, r, 8), n.write(e, t, r, i, 52, 8), r + 8; }
            s.prototype.slice = function (e, t) { var r = this.length; e = ~~e, t = void 0 === t ? r : ~~t, e < 0 ? (e += r) < 0 && (e = 0) : e > r && (e = r), t < 0 ? (t += r) < 0 && (t = 0) : t > r && (t = r), t < e && (t = e); var n = this.subarray(e, t); return n.__proto__ = s.prototype, n; }, s.prototype.readUIntLE = function (e, t, r) { e >>>= 0, t >>>= 0, r || I(e, t, this.length); for (var n = this[e], i = 1, o = 0; ++o < t && (i *= 256);)
                n += this[e + o] * i; return n; }, s.prototype.readUIntBE = function (e, t, r) { e >>>= 0, t >>>= 0, r || I(e, t, this.length); for (var n = this[e + --t], i = 1; t > 0 && (i *= 256);)
                n += this[e + --t] * i; return n; }, s.prototype.readUInt8 = function (e, t) { return e >>>= 0, t || I(e, 1, this.length), this[e]; }, s.prototype.readUInt16LE = function (e, t) { return e >>>= 0, t || I(e, 2, this.length), this[e] | this[e + 1] << 8; }, s.prototype.readUInt16BE = function (e, t) { return e >>>= 0, t || I(e, 2, this.length), this[e] << 8 | this[e + 1]; }, s.prototype.readUInt32LE = function (e, t) { return e >>>= 0, t || I(e, 4, this.length), (this[e] | this[e + 1] << 8 | this[e + 2] << 16) + 16777216 * this[e + 3]; }, s.prototype.readUInt32BE = function (e, t) { return e >>>= 0, t || I(e, 4, this.length), 16777216 * this[e] + (this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3]); }, s.prototype.readIntLE = function (e, t, r) { e >>>= 0, t >>>= 0, r || I(e, t, this.length); for (var n = this[e], i = 1, o = 0; ++o < t && (i *= 256);)
                n += this[e + o] * i; return n >= (i *= 128) && (n -= Math.pow(2, 8 * t)), n; }, s.prototype.readIntBE = function (e, t, r) { e >>>= 0, t >>>= 0, r || I(e, t, this.length); for (var n = t, i = 1, o = this[e + --n]; n > 0 && (i *= 256);)
                o += this[e + --n] * i; return o >= (i *= 128) && (o -= Math.pow(2, 8 * t)), o; }, s.prototype.readInt8 = function (e, t) { return e >>>= 0, t || I(e, 1, this.length), 128 & this[e] ? -1 * (255 - this[e] + 1) : this[e]; }, s.prototype.readInt16LE = function (e, t) { e >>>= 0, t || I(e, 2, this.length); var r = this[e] | this[e + 1] << 8; return 32768 & r ? 4294901760 | r : r; }, s.prototype.readInt16BE = function (e, t) { e >>>= 0, t || I(e, 2, this.length); var r = this[e + 1] | this[e] << 8; return 32768 & r ? 4294901760 | r : r; }, s.prototype.readInt32LE = function (e, t) { return e >>>= 0, t || I(e, 4, this.length), this[e] | this[e + 1] << 8 | this[e + 2] << 16 | this[e + 3] << 24; }, s.prototype.readInt32BE = function (e, t) { return e >>>= 0, t || I(e, 4, this.length), this[e] << 24 | this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3]; }, s.prototype.readFloatLE = function (e, t) { return e >>>= 0, t || I(e, 4, this.length), n.read(this, e, !0, 23, 4); }, s.prototype.readFloatBE = function (e, t) { return e >>>= 0, t || I(e, 4, this.length), n.read(this, e, !1, 23, 4); }, s.prototype.readDoubleLE = function (e, t) { return e >>>= 0, t || I(e, 8, this.length), n.read(this, e, !0, 52, 8); }, s.prototype.readDoubleBE = function (e, t) { return e >>>= 0, t || I(e, 8, this.length), n.read(this, e, !1, 52, 8); }, s.prototype.writeUIntLE = function (e, t, r, n) { (e = +e, t >>>= 0, r >>>= 0, n) || P(this, e, t, r, Math.pow(2, 8 * r) - 1, 0); var i = 1, o = 0; for (this[t] = 255 & e; ++o < r && (i *= 256);)
                this[t + o] = e / i & 255; return t + r; }, s.prototype.writeUIntBE = function (e, t, r, n) { (e = +e, t >>>= 0, r >>>= 0, n) || P(this, e, t, r, Math.pow(2, 8 * r) - 1, 0); var i = r - 1, o = 1; for (this[t + i] = 255 & e; --i >= 0 && (o *= 256);)
                this[t + i] = e / o & 255; return t + r; }, s.prototype.writeUInt8 = function (e, t, r) { return e = +e, t >>>= 0, r || P(this, e, t, 1, 255, 0), this[t] = 255 & e, t + 1; }, s.prototype.writeUInt16LE = function (e, t, r) { return e = +e, t >>>= 0, r || P(this, e, t, 2, 65535, 0), this[t] = 255 & e, this[t + 1] = e >>> 8, t + 2; }, s.prototype.writeUInt16BE = function (e, t, r) { return e = +e, t >>>= 0, r || P(this, e, t, 2, 65535, 0), this[t] = e >>> 8, this[t + 1] = 255 & e, t + 2; }, s.prototype.writeUInt32LE = function (e, t, r) { return e = +e, t >>>= 0, r || P(this, e, t, 4, 4294967295, 0), this[t + 3] = e >>> 24, this[t + 2] = e >>> 16, this[t + 1] = e >>> 8, this[t] = 255 & e, t + 4; }, s.prototype.writeUInt32BE = function (e, t, r) { return e = +e, t >>>= 0, r || P(this, e, t, 4, 4294967295, 0), this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e, t + 4; }, s.prototype.writeIntLE = function (e, t, r, n) { if (e = +e, t >>>= 0, !n) {
                var i = Math.pow(2, 8 * r - 1);
                P(this, e, t, r, i - 1, -i);
            } var o = 0, s = 1, a = 0; for (this[t] = 255 & e; ++o < r && (s *= 256);)
                e < 0 && 0 === a && 0 !== this[t + o - 1] && (a = 1), this[t + o] = (e / s >> 0) - a & 255; return t + r; }, s.prototype.writeIntBE = function (e, t, r, n) { if (e = +e, t >>>= 0, !n) {
                var i = Math.pow(2, 8 * r - 1);
                P(this, e, t, r, i - 1, -i);
            } var o = r - 1, s = 1, a = 0; for (this[t + o] = 255 & e; --o >= 0 && (s *= 256);)
                e < 0 && 0 === a && 0 !== this[t + o + 1] && (a = 1), this[t + o] = (e / s >> 0) - a & 255; return t + r; }, s.prototype.writeInt8 = function (e, t, r) { return e = +e, t >>>= 0, r || P(this, e, t, 1, 127, -128), e < 0 && (e = 255 + e + 1), this[t] = 255 & e, t + 1; }, s.prototype.writeInt16LE = function (e, t, r) { return e = +e, t >>>= 0, r || P(this, e, t, 2, 32767, -32768), this[t] = 255 & e, this[t + 1] = e >>> 8, t + 2; }, s.prototype.writeInt16BE = function (e, t, r) { return e = +e, t >>>= 0, r || P(this, e, t, 2, 32767, -32768), this[t] = e >>> 8, this[t + 1] = 255 & e, t + 2; }, s.prototype.writeInt32LE = function (e, t, r) { return e = +e, t >>>= 0, r || P(this, e, t, 4, 2147483647, -2147483648), this[t] = 255 & e, this[t + 1] = e >>> 8, this[t + 2] = e >>> 16, this[t + 3] = e >>> 24, t + 4; }, s.prototype.writeInt32BE = function (e, t, r) { return e = +e, t >>>= 0, r || P(this, e, t, 4, 2147483647, -2147483648), e < 0 && (e = 4294967295 + e + 1), this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e, t + 4; }, s.prototype.writeFloatLE = function (e, t, r) { return B(this, e, t, !0, r); }, s.prototype.writeFloatBE = function (e, t, r) { return B(this, e, t, !1, r); }, s.prototype.writeDoubleLE = function (e, t, r) { return R(this, e, t, !0, r); }, s.prototype.writeDoubleBE = function (e, t, r) { return R(this, e, t, !1, r); }, s.prototype.copy = function (e, t, r, n) { if (!s.isBuffer(e))
                throw new TypeError("argument should be a Buffer"); if (r || (r = 0), n || 0 === n || (n = this.length), t >= e.length && (t = e.length), t || (t = 0), n > 0 && n < r && (n = r), n === r)
                return 0; if (0 === e.length || 0 === this.length)
                return 0; if (t < 0)
                throw new RangeError("targetStart out of bounds"); if (r < 0 || r >= this.length)
                throw new RangeError("Index out of range"); if (n < 0)
                throw new RangeError("sourceEnd out of bounds"); n > this.length && (n = this.length), e.length - t < n - r && (n = e.length - t + r); var i = n - r; if (this === e && "function" == typeof Uint8Array.prototype.copyWithin)
                this.copyWithin(t, r, n);
            else if (this === e && r < t && t < n)
                for (var o = i - 1; o >= 0; --o)
                    e[o + t] = this[o + r];
            else
                Uint8Array.prototype.set.call(e, this.subarray(r, n), t); return i; }, s.prototype.fill = function (e, t, r, n) { if ("string" == typeof e) {
                if ("string" == typeof t ? (n = t, t = 0, r = this.length) : "string" == typeof r && (n = r, r = this.length), void 0 !== n && "string" != typeof n)
                    throw new TypeError("encoding must be a string");
                if ("string" == typeof n && !s.isEncoding(n))
                    throw new TypeError("Unknown encoding: " + n);
                if (1 === e.length) {
                    var i = e.charCodeAt(0);
                    ("utf8" === n && i < 128 || "latin1" === n) && (e = i);
                }
            }
            else
                "number" == typeof e && (e &= 255); if (t < 0 || this.length < t || this.length < r)
                throw new RangeError("Out of range index"); if (r <= t)
                return this; var o; if (t >>>= 0, r = void 0 === r ? this.length : r >>> 0, e || (e = 0), "number" == typeof e)
                for (o = t; o < r; ++o)
                    this[o] = e;
            else {
                var a = s.isBuffer(e) ? e : s.from(e, n), l = a.length;
                if (0 === l)
                    throw new TypeError('The value "' + e + '" is invalid for argument "value"');
                for (o = 0; o < r - t; ++o)
                    this[o + t] = a[o % l];
            } return this; };
            var M = /[^+/0-9A-Za-z-_]/g;
            function N(e) { return e < 16 ? "0" + e.toString(16) : e.toString(16); }
            function L(e, t) { var r; t = t || 1 / 0; for (var n = e.length, i = null, o = [], s = 0; s < n; ++s) {
                if ((r = e.charCodeAt(s)) > 55295 && r < 57344) {
                    if (!i) {
                        if (r > 56319) {
                            (t -= 3) > -1 && o.push(239, 191, 189);
                            continue;
                        }
                        if (s + 1 === n) {
                            (t -= 3) > -1 && o.push(239, 191, 189);
                            continue;
                        }
                        i = r;
                        continue;
                    }
                    if (r < 56320) {
                        (t -= 3) > -1 && o.push(239, 191, 189), i = r;
                        continue;
                    }
                    r = 65536 + (i - 55296 << 10 | r - 56320);
                }
                else
                    i && (t -= 3) > -1 && o.push(239, 191, 189);
                if (i = null, r < 128) {
                    if ((t -= 1) < 0)
                        break;
                    o.push(r);
                }
                else if (r < 2048) {
                    if ((t -= 2) < 0)
                        break;
                    o.push(r >> 6 | 192, 63 & r | 128);
                }
                else if (r < 65536) {
                    if ((t -= 3) < 0)
                        break;
                    o.push(r >> 12 | 224, r >> 6 & 63 | 128, 63 & r | 128);
                }
                else {
                    if (!(r < 1114112))
                        throw new Error("Invalid code point");
                    if ((t -= 4) < 0)
                        break;
                    o.push(r >> 18 | 240, r >> 12 & 63 | 128, r >> 6 & 63 | 128, 63 & r | 128);
                }
            } return o; }
            function j(e) { return t.toByteArray(function (e) { if ((e = (e = e.split("=")[0]).trim().replace(M, "")).length < 2)
                return ""; for (; e.length % 4 != 0;)
                e += "="; return e; }(e)); }
            function U(e, t, r, n) { for (var i = 0; i < n && !(i + r >= t.length || i >= e.length); ++i)
                t[i + r] = e[i]; return i; }
            function q(e, t) { return e instanceof t || null != e && null != e.constructor && null != e.constructor.name && e.constructor.name === t.name; }
            function D(e) { return e != e; }
        }).call(this); }).call(this, e("buffer").Buffer); }, { "base64-js": 13, buffer: 17, ieee754: 23 }], 18: [function (e, t, r) { (function (n) { (function () { r.formatArgs = function (e) { if (e[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + e[0] + (this.useColors ? "%c " : " ") + "+" + t.exports.humanize(this.diff), !this.useColors)
            return; var r = "color: " + this.color; e.splice(1, 0, r, "color: inherit"); var n = 0, i = 0; e[0].replace(/%[a-zA-Z%]/g, function (e) { "%%" !== e && "%c" === e && (i = ++n); }), e.splice(i, 0, r); }, r.save = function (e) { try {
            e ? r.storage.setItem("debug", e) : r.storage.removeItem("debug");
        }
        catch (e) { } }, r.load = function () { var e; try {
            e = r.storage.getItem("debug");
        }
        catch (e) { } !e && void 0 !== n && "env" in n && (e = n.env.DEBUG); return e; }, r.useColors = function () { if ("undefined" != typeof window && window.process && ("renderer" === window.process.type || window.process.__nwjs))
            return !0; if ("undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))
            return !1; return "undefined" != typeof document && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || "undefined" != typeof window && window.console && (window.console.firebug || window.console.exception && window.console.table) || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); }, r.storage = function () { try {
            return localStorage;
        }
        catch (e) { } }(), r.destroy = (function () { var e = !1; return function () { e || (e = !0, console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")); }; })(), r.colors = ["#0000CC", "#0000FF", "#0033CC", "#0033FF", "#0066CC", "#0066FF", "#0099CC", "#0099FF", "#00CC00", "#00CC33", "#00CC66", "#00CC99", "#00CCCC", "#00CCFF", "#3300CC", "#3300FF", "#3333CC", "#3333FF", "#3366CC", "#3366FF", "#3399CC", "#3399FF", "#33CC00", "#33CC33", "#33CC66", "#33CC99", "#33CCCC", "#33CCFF", "#6600CC", "#6600FF", "#6633CC", "#6633FF", "#66CC00", "#66CC33", "#9900CC", "#9900FF", "#9933CC", "#9933FF", "#99CC00", "#99CC33", "#CC0000", "#CC0033", "#CC0066", "#CC0099", "#CC00CC", "#CC00FF", "#CC3300", "#CC3333", "#CC3366", "#CC3399", "#CC33CC", "#CC33FF", "#CC6600", "#CC6633", "#CC9900", "#CC9933", "#CCCC00", "#CCCC33", "#FF0000", "#FF0033", "#FF0066", "#FF0099", "#FF00CC", "#FF00FF", "#FF3300", "#FF3333", "#FF3366", "#FF3399", "#FF33CC", "#FF33FF", "#FF6600", "#FF6633", "#FF9900", "#FF9933", "#FFCC00", "#FFCC33"], r.log = console.debug || console.log || (function () { }), t.exports = e("./common")(r); var i = t.exports.formatters; i.j = function (e) { try {
            return JSON.stringify(e);
        }
        catch (e) {
            return "[UnexpectedJSONParseError]: " + e.message;
        } }; }).call(this); }).call(this, e("_process")); }, { "./common": 19, _process: 50 }], 19: [function (e, t, r) { t.exports = function (t) { function r(e) { var t, i, o, s = null; function a() {
            var e = [];
            for (var _a = 0; _a < arguments.length; _a++) {
                e[_a] = arguments[_a];
            }
            if (!a.enabled)
                return;
            var n = a, i = Number(new Date), o = i - (t || i);
            n.diff = o, n.prev = t, n.curr = i, t = i, e[0] = r.coerce(e[0]), "string" != typeof e[0] && e.unshift("%O");
            var s = 0;
            e[0] = e[0].replace(/%([a-zA-Z%])/g, function (t, i) { if ("%%" === t)
                return "%"; s++; var o = r.formatters[i]; if ("function" == typeof o) {
                var r_12 = e[s];
                t = o.call(n, r_12), e.splice(s, 1), s--;
            } return t; }), r.formatArgs.call(n, e), (n.log || r.log).apply(n, e);
        } return a.namespace = e, a.useColors = r.useColors(), a.color = r.selectColor(e), a.extend = n, a.destroy = r.destroy, Object.defineProperty(a, "enabled", { enumerable: !0, configurable: !1, get: function () { return null !== s ? s : (i !== r.namespaces && (i = r.namespaces, o = r.enabled(e)), o); }, set: function (e) { s = e; } }), "function" == typeof r.init && r.init(a), a; } function n(e, t) { var n = r(this.namespace + (void 0 === t ? ":" : t) + e); return n.log = this.log, n; } function i(e) { return e.toString().substring(2, e.toString().length - 2).replace(/\.\*\?$/, "*"); } return r.debug = r, r.default = r, r.coerce = function (e) { return e instanceof Error ? e.stack || e.message : e; }, r.disable = function () { var e = __spreadArray(__spreadArray([], r.names.map(i), true), r.skips.map(i).map(function (e) { return "-" + e; }), true).join(","); return r.enable(""), e; }, r.enable = function (e) { var t; r.save(e), r.namespaces = e, r.names = [], r.skips = []; var n = ("string" == typeof e ? e : "").split(/[\s,]+/), i = n.length; for (t = 0; t < i; t++)
            n[t] && ("-" === (e = n[t].replace(/\*/g, ".*?"))[0] ? r.skips.push(new RegExp("^" + e.substr(1) + "$")) : r.names.push(new RegExp("^" + e + "$"))); }, r.enabled = function (e) { if ("*" === e[e.length - 1])
            return !0; var t, n; for (t = 0, n = r.skips.length; t < n; t++)
            if (r.skips[t].test(e))
                return !1; for (t = 0, n = r.names.length; t < n; t++)
            if (r.names[t].test(e))
                return !0; return !1; }, r.humanize = e("ms"), r.destroy = function () { console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); }, Object.keys(t).forEach(function (e) { r[e] = t[e]; }), r.names = [], r.skips = [], r.formatters = {}, r.selectColor = function (e) { var t = 0; for (var r_13 = 0; r_13 < e.length; r_13++)
            t = (t << 5) - t + e.charCodeAt(r_13), t |= 0; return r.colors[Math.abs(t) % r.colors.length]; }, r.enable(r.load()), r; }; }, { ms: 45 }], 20: [function (e, t, r) { (function (r, n) { (function () { var i = e("readable-stream"), o = e("end-of-stream"), s = e("inherits"), a = e("stream-shift"), l = n.from && n.from !== Uint8Array.from ? n.from([0]) : new n([0]), u = function (e, t) { e._corked ? e.once("uncork", t) : t(); }, c = function (e, t) { return function (r) { r ? function (e, t) { e._autoDestroy && e.destroy(t); }(e, "premature close" === r.message ? null : r) : t && !e._ended && e.end(); }; }, h = function () { }, f = function (e, t, r) { if (!(this instanceof f))
            return new f(e, t, r); i.Duplex.call(this, r), this._writable = null, this._readable = null, this._readable2 = null, this._autoDestroy = !r || !1 !== r.autoDestroy, this._forwardDestroy = !r || !1 !== r.destroy, this._forwardEnd = !r || !1 !== r.end, this._corked = 1, this._ondrain = null, this._drained = !1, this._forwarding = !1, this._unwrite = null, this._unread = null, this._ended = !1, this.destroyed = !1, e && this.setWritable(e), t && this.setReadable(t); }; s(f, i.Duplex), f.obj = function (e, t, r) { return r || (r = {}), r.objectMode = !0, r.highWaterMark = 16, new f(e, t, r); }, f.prototype.cork = function () { 1 == ++this._corked && this.emit("cork"); }, f.prototype.uncork = function () { this._corked && 0 == --this._corked && this.emit("uncork"); }, f.prototype.setWritable = function (e) { if (this._unwrite && this._unwrite(), this.destroyed)
            e && e.destroy && e.destroy();
        else if (null !== e && !1 !== e) {
            var t = this, n = o(e, { writable: !0, readable: !1 }, c(this, this._forwardEnd)), i = function () { var e = t._ondrain; t._ondrain = null, e && e(); };
            this._unwrite && r.nextTick(i), this._writable = e, this._writable.on("drain", i), this._unwrite = function () { t._writable.removeListener("drain", i), n(); }, this.uncork();
        }
        else
            this.end(); }, f.prototype.setReadable = function (e) { if (this._unread && this._unread(), this.destroyed)
            e && e.destroy && e.destroy();
        else {
            if (null === e || !1 === e)
                return this.push(null), void this.resume();
            var t, r = this, n = o(e, { writable: !1, readable: !0 }, c(this)), s = function () { r._forward(); }, a = function () { r.push(null); };
            this._drained = !0, this._readable = e, this._readable2 = e._readableState ? e : (t = e, new i.Readable({ objectMode: !0, highWaterMark: 16 }).wrap(t)), this._readable2.on("readable", s), this._readable2.on("end", a), this._unread = function () { r._readable2.removeListener("readable", s), r._readable2.removeListener("end", a), n(); }, this._forward();
        } }, f.prototype._read = function () { this._drained = !0, this._forward(); }, f.prototype._forward = function () { if (!this._forwarding && this._readable2 && this._drained) {
            var e;
            for (this._forwarding = !0; this._drained && null !== (e = a(this._readable2));)
                this.destroyed || (this._drained = this.push(e));
            this._forwarding = !1;
        } }, f.prototype.destroy = function (e, t) { if (t || (t = h), this.destroyed)
            return t(null); this.destroyed = !0; var n = this; r.nextTick(function () { n._destroy(e), t(null); }); }, f.prototype._destroy = function (e) { if (e) {
            var t = this._ondrain;
            this._ondrain = null, t ? t(e) : this.emit("error", e);
        } this._forwardDestroy && (this._readable && this._readable.destroy && this._readable.destroy(), this._writable && this._writable.destroy && this._writable.destroy()), this.emit("close"); }, f.prototype._write = function (e, t, r) { if (!this.destroyed)
            return this._corked ? u(this, this._write.bind(this, e, t, r)) : e === l ? this._finish(r) : this._writable ? void (!1 === this._writable.write(e) ? this._ondrain = r : this.destroyed || r()) : r(); }, f.prototype._finish = function (e) { var t = this; this.emit("preend"), u(this, function () { var r, n; r = t._forwardEnd && t._writable, n = function () { !1 === t._writableState.prefinished && (t._writableState.prefinished = !0), t.emit("prefinish"), u(t, e); }, r ? r._writableState && r._writableState.finished ? n() : r._writableState ? r.end(n) : (r.end(), n()) : n(); }); }, f.prototype.end = function (e, t, r) { return "function" == typeof e ? this.end(null, null, e) : "function" == typeof t ? this.end(e, null, t) : (this._ended = !0, e && this.write(e), this._writableState.ending || this._writableState.destroyed || this.write(l), i.Writable.prototype.end.call(this, r)); }, t.exports = f; }).call(this); }).call(this, e("_process"), e("buffer").Buffer); }, { _process: 50, buffer: 17, "end-of-stream": 21, inherits: 24, "readable-stream": 69, "stream-shift": 74 }], 21: [function (e, t, r) { (function (r) { (function () { var n = e("once"), i = function () { }, o = function (e, t, s) { if ("function" == typeof t)
            return o(e, null, t); t || (t = {}), s = n(s || i); var a = e._writableState, l = e._readableState, u = t.readable || !1 !== t.readable && e.readable, c = t.writable || !1 !== t.writable && e.writable, h = !1, f = function () { e.writable || p(); }, p = function () { c = !1, u || s.call(e); }, d = function () { u = !1, c || s.call(e); }, g = function (t) { s.call(e, t ? new Error("exited with error code: " + t) : null); }, y = function (t) { s.call(e, t); }, b = function () { r.nextTick(m); }, m = function () { if (!h)
            return (!u || l && l.ended && !l.destroyed) && (!c || a && a.ended && !a.destroyed) ? void 0 : s.call(e, new Error("premature close")); }, v = function () { e.req.on("finish", p); }; return !function (e) { return e.setHeader && "function" == typeof e.abort; }(e) ? c && !a && (e.on("end", f), e.on("close", f)) : (e.on("complete", p), e.on("abort", b), e.req ? v() : e.on("request", v)), function (e) { return e.stdio && Array.isArray(e.stdio) && 3 === e.stdio.length; }(e) && e.on("exit", g), e.on("end", d), e.on("finish", p), !1 !== t.error && e.on("error", y), e.on("close", b), function () { h = !0, e.removeListener("complete", p), e.removeListener("abort", b), e.removeListener("request", v), e.req && e.req.removeListener("finish", p), e.removeListener("end", f), e.removeListener("close", f), e.removeListener("finish", p), e.removeListener("exit", g), e.removeListener("end", d), e.removeListener("error", y), e.removeListener("close", b); }; }; t.exports = o; }).call(this); }).call(this, e("_process")); }, { _process: 50, once: 48 }], 22: [function (e, t, r) { var n = Object.create || function (e) { var t = function () { }; return t.prototype = e, new t; }, i = Object.keys || function (e) { var t = []; for (var r in e)
            Object.prototype.hasOwnProperty.call(e, r) && t.push(r); return r; }, o = Function.prototype.bind || function (e) { var t = this; return function () { return t.apply(e, arguments); }; }; function s() { this._events && Object.prototype.hasOwnProperty.call(this, "_events") || (this._events = n(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0; } t.exports = s, s.EventEmitter = s, s.prototype._events = void 0, s.prototype._maxListeners = void 0; var a, l = 10; try {
            var u = {};
            Object.defineProperty && Object.defineProperty(u, "x", { value: 0 }), a = 0 === u.x;
        }
        catch (e) {
            a = !1;
        } function c(e) { return void 0 === e._maxListeners ? s.defaultMaxListeners : e._maxListeners; } function h(e, t, r, i) { var o, s, a; if ("function" != typeof r)
            throw new TypeError('"listener" argument must be a function'); if ((s = e._events) ? (s.newListener && (e.emit("newListener", t, r.listener ? r.listener : r), s = e._events), a = s[t]) : (s = e._events = n(null), e._eventsCount = 0), a) {
            if ("function" == typeof a ? a = s[t] = i ? [r, a] : [a, r] : i ? a.unshift(r) : a.push(r), !a.warned && (o = c(e)) && o > 0 && a.length > o) {
                a.warned = !0;
                var l = new Error("Possible EventEmitter memory leak detected. " + a.length + ' "' + String(t) + '" listeners added. Use emitter.setMaxListeners() to increase limit.');
                l.name = "MaxListenersExceededWarning", l.emitter = e, l.type = t, l.count = a.length, "object" == typeof console && console.warn && console.warn("%s: %s", l.name, l.message);
            }
        }
        else
            a = s[t] = r, ++e._eventsCount; return e; } function f() { if (!this.fired)
            switch (this.target.removeListener(this.type, this.wrapFn), this.fired = !0, arguments.length) {
                case 0: return this.listener.call(this.target);
                case 1: return this.listener.call(this.target, arguments[0]);
                case 2: return this.listener.call(this.target, arguments[0], arguments[1]);
                case 3: return this.listener.call(this.target, arguments[0], arguments[1], arguments[2]);
                default:
                    for (var e = new Array(arguments.length), t = 0; t < e.length; ++t)
                        e[t] = arguments[t];
                    this.listener.apply(this.target, e);
            } } function p(e, t, r) { var n = { fired: !1, wrapFn: void 0, target: e, type: t, listener: r }, i = o.call(f, n); return i.listener = r, n.wrapFn = i, i; } function d(e, t, r) { var n = e._events; if (!n)
            return []; var i = n[t]; return i ? "function" == typeof i ? r ? [i.listener || i] : [i] : r ? function (e) { for (var t = new Array(e.length), r = 0; r < t.length; ++r)
            t[r] = e[r].listener || e[r]; return t; }(i) : y(i, i.length) : []; } function g(e) { var t = this._events; if (t) {
            var r = t[e];
            if ("function" == typeof r)
                return 1;
            if (r)
                return r.length;
        } return 0; } function y(e, t) { for (var r = new Array(t), n = 0; n < t; ++n)
            r[n] = e[n]; return r; } a ? Object.defineProperty(s, "defaultMaxListeners", { enumerable: !0, get: function () { return l; }, set: function (e) { if ("number" != typeof e || e < 0 || e != e)
                throw new TypeError('"defaultMaxListeners" must be a positive number'); l = e; } }) : s.defaultMaxListeners = l, s.prototype.setMaxListeners = function (e) { if ("number" != typeof e || e < 0 || isNaN(e))
            throw new TypeError('"n" argument must be a positive number'); return this._maxListeners = e, this; }, s.prototype.getMaxListeners = function () { return c(this); }, s.prototype.emit = function (e) { var t, r, n, i, o, s, a = "error" === e; if (s = this._events)
            a = a && null == s.error;
        else if (!a)
            return !1; if (a) {
            if (arguments.length > 1 && (t = arguments[1]), t instanceof Error)
                throw t;
            var l = new Error('Unhandled "error" event. (' + t + ")");
            throw l.context = t, l;
        } if (!(r = s[e]))
            return !1; var u = "function" == typeof r; switch (n = arguments.length) {
            case 1:
                !function (e, t, r) { if (t)
                    e.call(r);
                else
                    for (var n = e.length, i = y(e, n), o = 0; o < n; ++o)
                        i[o].call(r); }(r, u, this);
                break;
            case 2:
                !function (e, t, r, n) { if (t)
                    e.call(r, n);
                else
                    for (var i = e.length, o = y(e, i), s = 0; s < i; ++s)
                        o[s].call(r, n); }(r, u, this, arguments[1]);
                break;
            case 3:
                !function (e, t, r, n, i) { if (t)
                    e.call(r, n, i);
                else
                    for (var o = e.length, s = y(e, o), a = 0; a < o; ++a)
                        s[a].call(r, n, i); }(r, u, this, arguments[1], arguments[2]);
                break;
            case 4:
                !function (e, t, r, n, i, o) { if (t)
                    e.call(r, n, i, o);
                else
                    for (var s = e.length, a = y(e, s), l = 0; l < s; ++l)
                        a[l].call(r, n, i, o); }(r, u, this, arguments[1], arguments[2], arguments[3]);
                break;
            default:
                for (i = new Array(n - 1), o = 1; o < n; o++)
                    i[o - 1] = arguments[o];
                !function (e, t, r, n) { if (t)
                    e.apply(r, n);
                else
                    for (var i = e.length, o = y(e, i), s = 0; s < i; ++s)
                        o[s].apply(r, n); }(r, u, this, i);
        } return !0; }, s.prototype.addListener = function (e, t) { return h(this, e, t, !1); }, s.prototype.on = s.prototype.addListener, s.prototype.prependListener = function (e, t) { return h(this, e, t, !0); }, s.prototype.once = function (e, t) { if ("function" != typeof t)
            throw new TypeError('"listener" argument must be a function'); return this.on(e, p(this, e, t)), this; }, s.prototype.prependOnceListener = function (e, t) { if ("function" != typeof t)
            throw new TypeError('"listener" argument must be a function'); return this.prependListener(e, p(this, e, t)), this; }, s.prototype.removeListener = function (e, t) { var r, i, o, s, a; if ("function" != typeof t)
            throw new TypeError('"listener" argument must be a function'); if (!(i = this._events))
            return this; if (!(r = i[e]))
            return this; if (r === t || r.listener === t)
            0 == --this._eventsCount ? this._events = n(null) : (delete i[e], i.removeListener && this.emit("removeListener", e, r.listener || t));
        else if ("function" != typeof r) {
            for (o = -1, s = r.length - 1; s >= 0; s--)
                if (r[s] === t || r[s].listener === t) {
                    a = r[s].listener, o = s;
                    break;
                }
            if (o < 0)
                return this;
            0 === o ? r.shift() : function (e, t) { for (var r = t, n = r + 1, i = e.length; n < i; r += 1, n += 1)
                e[r] = e[n]; e.pop(); }(r, o), 1 === r.length && (i[e] = r[0]), i.removeListener && this.emit("removeListener", e, a || t);
        } return this; }, s.prototype.removeAllListeners = function (e) { var t, r, o; if (!(r = this._events))
            return this; if (!r.removeListener)
            return 0 === arguments.length ? (this._events = n(null), this._eventsCount = 0) : r[e] && (0 == --this._eventsCount ? this._events = n(null) : delete r[e]), this; if (0 === arguments.length) {
            var s, a = i(r);
            for (o = 0; o < a.length; ++o)
                "removeListener" !== (s = a[o]) && this.removeAllListeners(s);
            return this.removeAllListeners("removeListener"), this._events = n(null), this._eventsCount = 0, this;
        } if ("function" == typeof (t = r[e]))
            this.removeListener(e, t);
        else if (t)
            for (o = t.length - 1; o >= 0; o--)
                this.removeListener(e, t[o]); return this; }, s.prototype.listeners = function (e) { return d(this, e, !0); }, s.prototype.rawListeners = function (e) { return d(this, e, !1); }, s.listenerCount = function (e, t) { return "function" == typeof e.listenerCount ? e.listenerCount(t) : g.call(e, t); }, s.prototype.listenerCount = g, s.prototype.eventNames = function () { return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : []; }; }, {}], 23: [function (e, t, r) { r.read = function (e, t, r, n, i) { var o, s, a = 8 * i - n - 1, l = (1 << a) - 1, u = l >> 1, c = -7, h = r ? i - 1 : 0, f = r ? -1 : 1, p = e[t + h]; for (h += f, o = p & (1 << -c) - 1, p >>= -c, c += a; c > 0; o = 256 * o + e[t + h], h += f, c -= 8)
            ; for (s = o & (1 << -c) - 1, o >>= -c, c += n; c > 0; s = 256 * s + e[t + h], h += f, c -= 8)
            ; if (0 === o)
            o = 1 - u;
        else {
            if (o === l)
                return s ? NaN : 1 / 0 * (p ? -1 : 1);
            s += Math.pow(2, n), o -= u;
        } return (p ? -1 : 1) * s * Math.pow(2, o - n); }, r.write = function (e, t, r, n, i, o) { var s, a, l, u = 8 * o - i - 1, c = (1 << u) - 1, h = c >> 1, f = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, p = n ? 0 : o - 1, d = n ? 1 : -1, g = t < 0 || 0 === t && 1 / t < 0 ? 1 : 0; for (t = Math.abs(t), isNaN(t) || t === 1 / 0 ? (a = isNaN(t) ? 1 : 0, s = c) : (s = Math.floor(Math.log(t) / Math.LN2), t * (l = Math.pow(2, -s)) < 1 && (s--, l *= 2), (t += s + h >= 1 ? f / l : f * Math.pow(2, 1 - h)) * l >= 2 && (s++, l /= 2), s + h >= c ? (a = 0, s = c) : s + h >= 1 ? (a = (t * l - 1) * Math.pow(2, i), s += h) : (a = t * Math.pow(2, h - 1) * Math.pow(2, i), s = 0)); i >= 8; e[r + p] = 255 & a, p += d, a /= 256, i -= 8)
            ; for (s = s << i | a, u += i; u > 0; e[r + p] = 255 & s, p += d, s /= 256, u -= 8)
            ; e[r + p - d] |= 128 * g; }; }, {}], 24: [function (e, t, r) { "function" == typeof Object.create ? t.exports = function (e, t) { t && (e.super_ = t, e.prototype = Object.create(t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })); } : t.exports = function (e, t) { if (t) {
            e.super_ = t;
            var r = function () { };
            r.prototype = t.prototype, e.prototype = new r, e.prototype.constructor = e;
        } }; }, {}], 25: [function (e, t, r) {
            "use strict";
            Object.defineProperty(r, "__esModule", { value: !0 });
            var n = function () { function e(e, t) { this.color = !0, this.key = void 0, this.value = void 0, this.parent = void 0, this.brother = void 0, this.leftChild = void 0, this.rightChild = void 0, this.key = e, this.value = t; } return e.prototype.rotateLeft = function () { var e = this.parent, t = this.brother, r = this.leftChild, n = this.rightChild; if (!n)
                throw new Error("unknown error"); var i = n.leftChild, o = n.rightChild; return e && (e.leftChild === this ? e.leftChild = n : e.rightChild === this && (e.rightChild = n)), n.parent = e, n.brother = t, n.leftChild = this, n.rightChild = o, t && (t.brother = n), this.parent = n, this.brother = o, this.leftChild = r, this.rightChild = i, o && (o.parent = n, o.brother = this), r && (r.parent = this, r.brother = i), i && (i.parent = this, i.brother = r), n; }, e.prototype.rotateRight = function () { var e = this.parent, t = this.brother, r = this.leftChild; if (!r)
                throw new Error("unknown error"); var n = this.rightChild, i = r.leftChild, o = r.rightChild; return e && (e.leftChild === this ? e.leftChild = r : e.rightChild === this && (e.rightChild = r)), r.parent = e, r.brother = t, r.leftChild = i, r.rightChild = this, t && (t.brother = r), i && (i.parent = r, i.brother = this), this.parent = r, this.brother = i, this.leftChild = o, this.rightChild = n, o && (o.parent = this, o.brother = n), n && (n.parent = this, n.brother = o), r; }, e.prototype.remove = function () { if (this.leftChild || this.rightChild)
                throw new Error("can only remove leaf node"); this.parent && (this === this.parent.leftChild ? this.parent.leftChild = void 0 : this === this.parent.rightChild && (this.parent.rightChild = void 0)), this.brother && (this.brother.brother = void 0), this.key = void 0, this.value = void 0, this.parent = void 0, this.brother = void 0; }, e.TreeNodeColorType = { red: !0, black: !1 }, e; }();
            Object.freeze(n), r.default = n;
        }, {}], 26: [function (e, t, r) {
            "use strict";
            var n = this && this.__generator || function (e, t) { var r, n, i, o, s = { label: 0, sent: function () { if (1 & i[0])
                    throw i[1]; return i[1]; }, trys: [], ops: [] }; return o = { next: a(0), throw: a(1), return: a(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function () { return this; }), o; function a(o) { return function (a) { return function (o) { if (r)
                throw new TypeError("Generator is already executing."); for (; s;)
                try {
                    if (r = 1, n && (i = 2 & o[0] ? n.return : o[0] ? n.throw || ((i = n.return) && i.call(n), 0) : n.next) && !(i = i.call(n, o[1])).done)
                        return i;
                    switch (n = 0, i && (o = [2 & o[0], i.value]), o[0]) {
                        case 0:
                        case 1:
                            i = o;
                            break;
                        case 4: return s.label++, { value: o[1], done: !1 };
                        case 5:
                            s.label++, n = o[1], o = [0];
                            continue;
                        case 7:
                            o = s.ops.pop(), s.trys.pop();
                            continue;
                        default:
                            if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
                                s = 0;
                                continue;
                            }
                            if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
                                s.label = o[1];
                                break;
                            }
                            if (6 === o[0] && s.label < i[1]) {
                                s.label = i[1], i = o;
                                break;
                            }
                            if (i && s.label < i[2]) {
                                s.label = i[2], s.ops.push(o);
                                break;
                            }
                            i[2] && s.ops.pop(), s.trys.pop();
                            continue;
                    }
                    o = t.call(e, s);
                }
                catch (e) {
                    o = [6, e], n = 0;
                }
                finally {
                    r = i = 0;
                } if (5 & o[0])
                throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 }; }([o, a]); }; } };
            function i(e) { var t = this; void 0 === e && (e = []); var r = [], o = 0, s = 0, a = 0, l = 0, u = 0, c = 0; this.size = function () { return c; }, this.empty = function () { return 0 === c; }, this.clear = function () { o = a = s = l = u = c = 0, f.call(this, i.bucketSize), c = 0; }, this.front = function () { return r[o][s]; }, this.back = function () { return r[a][l]; }, this.forEach = function (e) { if (!this.empty()) {
                var t = 0;
                if (o !== a) {
                    for (u = s; u < i.bucketSize; ++u)
                        e(r[o][u], t++);
                    for (u = o + 1; u < a; ++u)
                        for (var n = 0; n < i.bucketSize; ++n)
                            e(r[u][n], t++);
                    for (u = 0; u <= l; ++u)
                        e(r[a][u], t++);
                }
                else
                    for (var u = s; u <= l; ++u)
                        e(r[o][u], t++);
            } }; var h = function (e) { var t = o * i.bucketSize + s, r = t + e, n = a * i.bucketSize + l; if (r < t || r > n)
                throw new Error("pos should more than 0 and less than queue's size"); return { curNodeBucketIndex: Math.floor(r / i.bucketSize), curNodePointerIndex: r % i.bucketSize }; }; this.getElementByPos = function (e) { var t = h(e), n = t.curNodeBucketIndex, i = t.curNodePointerIndex; return r[n][i]; }, this.eraseElementByPos = function (e) { var t = this; if (e < 0 || e > c)
                throw new Error("pos should more than 0 and less than queue's size"); if (0 === e)
                this.popFront();
            else if (e === this.size())
                this.popBack();
            else {
                for (var r = [], n = e + 1; n < c; ++n)
                    r.push(this.getElementByPos(n));
                this.cut(e), this.popBack(), r.forEach(function (e) { return t.pushBack(e); });
            } }, this.eraseElementByValue = function (e) { if (!this.empty()) {
                var t = [];
                this.forEach(function (r) { r !== e && t.push(r); });
                for (var r = t.length, n = 0; n < r; ++n)
                    this.setElementByPos(n, t[n]);
                this.cut(r - 1);
            } }; var f = function (e) { for (var t = [], n = e * i.sigma, h = Math.max(Math.ceil(n / i.bucketSize), 2), f = 0; f < h; ++f)
                t.push(new Array(i.bucketSize)); var p = Math.ceil(e / i.bucketSize), d = Math.floor(h / 2) - Math.floor(p / 2), g = d, y = 0; if (this.size())
                for (f = 0; f < p; ++f) {
                    for (var b = 0; b < i.bucketSize; ++b)
                        if (t[d + f][b] = this.front(), this.popFront(), this.empty()) {
                            g = d + f, y = b;
                            break;
                        }
                    if (this.empty())
                        break;
                } r = t, o = d, s = 0, a = g, l = y, u = h, c = e; }; this.pushBack = function (e) { this.empty() || (a === u - 1 && l === i.bucketSize - 1 && f.call(this, this.size()), l < i.bucketSize - 1 ? ++l : a < u - 1 && (++a, l = 0)), ++c, r[a][l] = e; }, this.popBack = function () { this.empty() || (1 !== this.size() && (l > 0 ? --l : o < a && (--a, l = i.bucketSize - 1)), c > 0 && --c); }, this.setElementByPos = function (e, t) { var n = h(e), i = n.curNodeBucketIndex, o = n.curNodePointerIndex; r[i][o] = t; }, this.insert = function (e, t, r) { var n = this; if (void 0 === r && (r = 1), 0 === e)
                for (; r--;)
                    this.pushFront(t);
            else if (e === this.size())
                for (; r--;)
                    this.pushBack(t);
            else {
                for (var i = [], o = e; o < c; ++o)
                    i.push(this.getElementByPos(o));
                this.cut(e - 1);
                for (o = 0; o < r; ++o)
                    this.pushBack(t);
                i.forEach(function (e) { return n.pushBack(e); });
            } }, this.find = function (e) { if (o === a) {
                for (var t = s; t <= l; ++t)
                    if (r[o][t] === e)
                        return !0;
                return !1;
            } for (t = s; t < i.bucketSize; ++t)
                if (r[o][t] === e)
                    return !0; for (t = o + 1; t < a; ++t)
                for (var n = 0; n < i.bucketSize; ++n)
                    if (r[t][n] === e)
                        return !0; for (t = 0; t <= l; ++t)
                if (r[a][t] === e)
                    return !0; return !1; }, this.reverse = function () { for (var e = 0, t = c - 1; e < t;) {
                var r = this.getElementByPos(e);
                this.setElementByPos(e, this.getElementByPos(t)), this.setElementByPos(t, r), ++e, --t;
            } }, this.unique = function () { if (!this.empty()) {
                var e = [], t = this.front();
                this.forEach(function (r, n) { 0 !== n && r === t || (e.push(r), t = r); });
                for (var r = 0; r < c; ++r)
                    this.setElementByPos(r, e[r]);
                this.cut(e.length - 1);
            } }, this.sort = function (e) { var t = []; this.forEach(function (e) { t.push(e); }), t.sort(e); for (var r = 0; r < c; ++r)
                this.setElementByPos(r, t[r]); }, this.pushFront = function (e) { this.empty() || (0 === o && 0 === s && f.call(this, this.size()), s > 0 ? --s : o > 0 && (--o, s = i.bucketSize - 1)), ++c, r[o][s] = e; }, this.popFront = function () { this.empty() || (1 !== this.size() && (s < i.bucketSize - 1 ? ++s : o < a && (++o, s = 0)), c > 0 && --c); }, this.shrinkToFit = function () { var e = this, t = []; this.forEach(function (e) { t.push(e); }); var n = t.length; r = []; for (var o = Math.ceil(n / i.bucketSize), s = 0; s < o; ++s)
                r.push(new Array(i.bucketSize)); this.clear(), t.forEach(function (t) { return e.pushBack(t); }); }, this.cut = function (e) { if (e < 0)
                this.clear();
            else {
                var t = h(e), r = t.curNodeBucketIndex, n = t.curNodePointerIndex;
                a = r, l = n, c = e + 1;
            } }, this[Symbol.iterator] = function () { return function () { var e, t; return n(this, function (n) { switch (n.label) {
                case 0:
                    if (0 === c)
                        return [2];
                    if (o !== a)
                        return [3, 5];
                    t = s, n.label = 1;
                case 1: return t <= l ? [4, r[o][t]] : [3, 4];
                case 2: n.sent(), n.label = 3;
                case 3: return ++t, [3, 1];
                case 4: return [2];
                case 5: t = s, n.label = 6;
                case 6: return t < i.bucketSize ? [4, r[o][t]] : [3, 9];
                case 7: n.sent(), n.label = 8;
                case 8: return ++t, [3, 6];
                case 9: t = o + 1, n.label = 10;
                case 10:
                    if (!(t < a))
                        return [3, 15];
                    e = 0, n.label = 11;
                case 11: return e < i.bucketSize ? [4, r[t][e]] : [3, 14];
                case 12: n.sent(), n.label = 13;
                case 13: return ++e, [3, 11];
                case 14: return ++t, [3, 10];
                case 15: t = 0, n.label = 16;
                case 16: return t <= l ? [4, r[a][t]] : [3, 19];
                case 17: n.sent(), n.label = 18;
                case 18: return ++t, [3, 16];
                case 19: return [2];
            } }); }(); }, function () { var n = i.bucketSize; e.size ? n = e.size() : e.length && (n = e.length); var s = n * i.sigma; u = Math.ceil(s / i.bucketSize), u = Math.max(u, 3); for (var l = 0; l < u; ++l)
                r.push(new Array(i.bucketSize)); var c = Math.ceil(n / i.bucketSize); o = Math.floor(u / 2) - Math.floor(c / 2), a = o, e.forEach(function (e) { return t.pushBack(e); }); }(), Object.freeze(this); }
            Object.defineProperty(r, "__esModule", { value: !0 }), i.sigma = 3, i.bucketSize = 5e3, Object.freeze(i), r.default = i;
        }, {}], 27: [function (e, t, r) {
            "use strict";
            var n = this && this.__generator || function (e, t) { var r, n, i, o, s = { label: 0, sent: function () { if (1 & i[0])
                    throw i[1]; return i[1]; }, trys: [], ops: [] }; return o = { next: a(0), throw: a(1), return: a(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function () { return this; }), o; function a(o) { return function (a) { return function (o) { if (r)
                throw new TypeError("Generator is already executing."); for (; s;)
                try {
                    if (r = 1, n && (i = 2 & o[0] ? n.return : o[0] ? n.throw || ((i = n.return) && i.call(n), 0) : n.next) && !(i = i.call(n, o[1])).done)
                        return i;
                    switch (n = 0, i && (o = [2 & o[0], i.value]), o[0]) {
                        case 0:
                        case 1:
                            i = o;
                            break;
                        case 4: return s.label++, { value: o[1], done: !1 };
                        case 5:
                            s.label++, n = o[1], o = [0];
                            continue;
                        case 7:
                            o = s.ops.pop(), s.trys.pop();
                            continue;
                        default:
                            if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
                                s = 0;
                                continue;
                            }
                            if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
                                s.label = o[1];
                                break;
                            }
                            if (6 === o[0] && s.label < i[1]) {
                                s.label = i[1], i = o;
                                break;
                            }
                            if (i && s.label < i[2]) {
                                s.label = i[2], s.ops.push(o);
                                break;
                            }
                            i[2] && s.ops.pop(), s.trys.pop();
                            continue;
                    }
                    o = t.call(e, s);
                }
                catch (e) {
                    o = [6, e], n = 0;
                }
                finally {
                    r = i = 0;
                } if (5 & o[0])
                throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 }; }([o, a]); }; } }, i = this && this.__values || function (e) { var t = "function" == typeof Symbol && Symbol.iterator, r = t && e[t], n = 0; if (r)
                return r.call(e); if (e && "number" == typeof e.length)
                return { next: function () { return e && n >= e.length && (e = void 0), { value: e && e[n++], done: !e }; } }; throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined."); };
            Object.defineProperty(r, "__esModule", { value: !0 });
            var o = e("../LinkList/LinkList"), s = e("../Map/Map");
            function a(e, t, r) { var l = this; if (void 0 === e && (e = []), void 0 === t && (t = a.initSize), r = r || function (e) { var t, r, n = 0, o = ""; if ("number" == typeof e)
                n = ((n = Math.floor(e)) << 5) - n, n &= n;
            else {
                o = "string" != typeof e ? JSON.stringify(e) : e;
                try {
                    for (var s = i(o), a = s.next(); !a.done; a = s.next()) {
                        n = (n << 5) - n + a.value.charCodeAt(0), n &= n;
                    }
                }
                catch (e) {
                    t = { error: e };
                }
                finally {
                    try {
                        a && !a.done && (r = s.return) && r.call(s);
                    }
                    finally {
                        if (t)
                            throw t.error;
                    }
                }
            } return n ^= n >>> 16; }, 0 != (t & t - 1))
                throw new Error("initBucketNum must be 2 to the power of n"); var u = 0, c = [], h = Math.max(a.initSize, Math.min(a.maxSize, t)); this.size = function () { return u; }, this.empty = function () { return 0 === u; }, this.clear = function () { u = 0, h = t, c = []; }, this.forEach = function (e) { var t = 0; c.forEach(function (r) { r.forEach(function (r) { e(r, t++); }); }); }; this.setElement = function (e, t) { var n, l; if (null === e || void 0 === e)
                throw new Error("to avoid some unnecessary errors, we don't suggest you insert null or undefined here"); if (null !== t && void 0 !== t) {
                var f = r(e) & h - 1;
                if (c[f]) {
                    var p = c[f].size();
                    if (c[f] instanceof o.default) {
                        try {
                            for (var d = i(c[f]), g = d.next(); !g.done; g = d.next()) {
                                var y = g.value;
                                if (y.key === e)
                                    return void (y.value = t);
                            }
                        }
                        catch (e) {
                            n = { error: e };
                        }
                        finally {
                            try {
                                g && !g.done && (l = d.return) && l.call(d);
                            }
                            finally {
                                if (n)
                                    throw n.error;
                            }
                        }
                        c[f].pushBack({ key: e, value: t }), c[f].size() >= a.treeifyThreshold && (c[f] = new s.default(c[f]));
                    }
                    else
                        c[f].setElement(e, t);
                    var b = c[f].size();
                    u += b - p;
                }
                else
                    ++u, c[f] = new o.default([{ key: e, value: t }]);
                u > h * a.sigma && function (e) { if (!(e >= a.maxSize)) {
                    h = 2 * e;
                    var t = [];
                    c.forEach(function (n, i) { if (!n.empty()) {
                        if (n instanceof o.default && 1 === n.size()) {
                            var l = n.front(), u = l.key, f = l.value;
                            t[r(u) & h - 1] = new o.default([{ key: u, value: f }]);
                        }
                        else if (n instanceof s.default) {
                            var p = new o.default, d = new o.default;
                            n.forEach(function (t) { 0 == (r(t.key) & e) ? p.pushBack(t) : d.pushBack(t); }), p.size() > a.untreeifyThreshold ? t[i] = new s.default(p) : p.size() && (t[i] = p), d.size() > a.untreeifyThreshold ? t[i + e] = new s.default(d) : d.size() && (t[i + e] = d);
                        }
                        else {
                            var g = new o.default, y = new o.default;
                            n.forEach(function (t) { 0 == (r(t.key) & e) ? g.pushBack(t) : y.pushBack(t); }), g.size() && (t[i] = g), y.size() && (t[i + e] = y);
                        }
                        c[i].clear();
                    } }), c = t;
                } }.call(this, h);
            }
            else
                this.eraseElementByKey(e); }, this.getElementByKey = function (e) { var t, n, o = r(e) & h - 1; if (c[o]) {
                if (c[o] instanceof s.default)
                    return c[o].getElementByKey(e);
                try {
                    for (var a = i(c[o]), l = a.next(); !l.done; l = a.next()) {
                        var u = l.value;
                        if (u.key === e)
                            return u.value;
                    }
                }
                catch (e) {
                    t = { error: e };
                }
                finally {
                    try {
                        l && !l.done && (n = a.return) && n.call(a);
                    }
                    finally {
                        if (t)
                            throw t.error;
                    }
                }
            } }, this.eraseElementByKey = function (e) { var t, n, l = r(e) & h - 1; if (c[l]) {
                var f = c[l].size();
                if (c[l] instanceof s.default)
                    c[l].eraseElementByKey(e), c[l].size() <= a.untreeifyThreshold && (c[l] = new o.default(c[l]));
                else {
                    var p = -1;
                    try {
                        for (var d = i(c[l]), g = d.next(); !g.done; g = d.next()) {
                            if (++p, g.value.key === e) {
                                c[l].eraseElementByPos(p);
                                break;
                            }
                        }
                    }
                    catch (e) {
                        t = { error: e };
                    }
                    finally {
                        try {
                            g && !g.done && (n = d.return) && n.call(d);
                        }
                        finally {
                            if (t)
                                throw t.error;
                        }
                    }
                }
                var y = c[l].size();
                u += y - f;
            } }, this.find = function (e) { var t, n, o = r(e) & h - 1; if (!c[o])
                return !1; if (c[o] instanceof s.default)
                return c[o].find(e); try {
                for (var a = i(c[o]), l = a.next(); !l.done; l = a.next()) {
                    if (l.value.key === e)
                        return !0;
                }
            }
            catch (e) {
                t = { error: e };
            }
            finally {
                try {
                    l && !l.done && (n = a.return) && n.call(a);
                }
                finally {
                    if (t)
                        throw t.error;
                }
            } return !1; }, this[Symbol.iterator] = function () { return function () { var e, t, r, o, s, a; return n(this, function (n) { switch (n.label) {
                case 0: e = 0, n.label = 1;
                case 1:
                    if (!(e < h))
                        return [3, 10];
                    for (; e < h && !c[e];)
                        ++e;
                    if (e >= h)
                        return [3, 10];
                    n.label = 2;
                case 2: n.trys.push([2, 7, 8, 9]), s = void 0, t = i(c[e]), r = t.next(), n.label = 3;
                case 3: return r.done ? [3, 6] : [4, r.value];
                case 4: n.sent(), n.label = 5;
                case 5: return r = t.next(), [3, 3];
                case 6: return [3, 9];
                case 7: return o = n.sent(), s = { error: o }, [3, 9];
                case 8:
                    try {
                        r && !r.done && (a = t.return) && a.call(t);
                    }
                    finally {
                        if (s)
                            throw s.error;
                    }
                    return [7];
                case 9: return ++e, [3, 1];
                case 10: return [2];
            } }); }(); }, e.forEach(function (e) { var t = e.key, r = e.value; return l.setElement(t, r); }), Object.freeze(this); }
            a.initSize = 16, a.maxSize = 1 << 30, a.sigma = .75, a.treeifyThreshold = 8, a.untreeifyThreshold = 6, a.minTreeifySize = 64, Object.freeze(a), r.default = a;
        }, { "../LinkList/LinkList": 29, "../Map/Map": 30 }], 28: [function (e, t, r) {
            "use strict";
            var n = this && this.__generator || function (e, t) { var r, n, i, o, s = { label: 0, sent: function () { if (1 & i[0])
                    throw i[1]; return i[1]; }, trys: [], ops: [] }; return o = { next: a(0), throw: a(1), return: a(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function () { return this; }), o; function a(o) { return function (a) { return function (o) { if (r)
                throw new TypeError("Generator is already executing."); for (; s;)
                try {
                    if (r = 1, n && (i = 2 & o[0] ? n.return : o[0] ? n.throw || ((i = n.return) && i.call(n), 0) : n.next) && !(i = i.call(n, o[1])).done)
                        return i;
                    switch (n = 0, i && (o = [2 & o[0], i.value]), o[0]) {
                        case 0:
                        case 1:
                            i = o;
                            break;
                        case 4: return s.label++, { value: o[1], done: !1 };
                        case 5:
                            s.label++, n = o[1], o = [0];
                            continue;
                        case 7:
                            o = s.ops.pop(), s.trys.pop();
                            continue;
                        default:
                            if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
                                s = 0;
                                continue;
                            }
                            if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
                                s.label = o[1];
                                break;
                            }
                            if (6 === o[0] && s.label < i[1]) {
                                s.label = i[1], i = o;
                                break;
                            }
                            if (i && s.label < i[2]) {
                                s.label = i[2], s.ops.push(o);
                                break;
                            }
                            i[2] && s.ops.pop(), s.trys.pop();
                            continue;
                    }
                    o = t.call(e, s);
                }
                catch (e) {
                    o = [6, e], n = 0;
                }
                finally {
                    r = i = 0;
                } if (5 & o[0])
                throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 }; }([o, a]); }; } }, i = this && this.__values || function (e) { var t = "function" == typeof Symbol && Symbol.iterator, r = t && e[t], n = 0; if (r)
                return r.call(e); if (e && "number" == typeof e.length)
                return { next: function () { return e && n >= e.length && (e = void 0), { value: e && e[n++], done: !e }; } }; throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined."); };
            Object.defineProperty(r, "__esModule", { value: !0 });
            var o = e("../Set/Set"), s = e("../LinkList/LinkList");
            function a(e, t, r) { var l = this; if (void 0 === e && (e = []), void 0 === t && (t = a.initSize), r = r || function (e) { var t = 0, r = ""; if ("number" == typeof e)
                t = ((t = Math.floor(e)) << 5) - t, t &= t;
            else {
                r = "string" != typeof e ? JSON.stringify(e) : e;
                for (var n = 0; n < r.length; n++) {
                    t = (t << 5) - t + r.charCodeAt(n), t &= t;
                }
            } return t ^= t >>> 16; }, 0 != (t & t - 1))
                throw new Error("initBucketNum must be 2 to the power of n"); var u = 0, c = [], h = Math.max(a.initSize, Math.min(a.maxSize, t)); this.size = function () { return u; }, this.empty = function () { return 0 === u; }, this.clear = function () { u = 0, h = t, c = []; }, this.forEach = function (e) { var t = 0; c.forEach(function (r) { r.forEach(function (r) { e(r, t++); }); }); }; this.insert = function (e) { if (null === e || void 0 === e)
                throw new Error("to avoid some unnecessary errors, we don't suggest you insert null or undefined here"); var t = r(e) & h - 1; if (c[t]) {
                var n = c[t].size();
                if (c[t] instanceof s.default) {
                    if (c[t].find(e))
                        return;
                    c[t].pushBack(e), c[t].size() >= a.treeifyThreshold && (c[t] = new o.default(c[t]));
                }
                else
                    c[t].insert(e);
                var i = c[t].size();
                u += i - n;
            }
            else
                c[t] = new s.default([e]), ++u; u > h * a.sigma && function (e) { if (!(e >= a.maxSize)) {
                h = 2 * e;
                var t = [];
                c.forEach(function (n, i) { if (!n.empty()) {
                    if (n instanceof s.default && 1 === n.size()) {
                        var l = n.front();
                        if (void 0 === l)
                            throw new Error("unknown error");
                        t[r(l) & h - 1] = new s.default([l]);
                    }
                    else if (n instanceof o.default) {
                        var u = new s.default, f = new s.default;
                        n.forEach(function (t) { 0 == (r(t) & e) ? u.pushBack(t) : f.pushBack(t); }), u.size() > a.untreeifyThreshold ? t[i] = new o.default(u) : u.size() && (t[i] = u), f.size() > a.untreeifyThreshold ? t[i + e] = new o.default(f) : f.size() && (t[i + e] = f);
                    }
                    else {
                        var p = new s.default, d = new s.default;
                        n.forEach(function (t) { 0 == (r(t) & e) ? p.pushBack(t) : d.pushBack(t); }), p.size() && (t[i] = p), d.size() && (t[i + e] = d);
                    }
                    c[i].clear();
                } }), c = t;
            } }.call(this, h); }, this.eraseElementByValue = function (e) { var t = r(e) & h - 1; if (c[t]) {
                var n = c[t].size();
                c[t].eraseElementByValue(e), c[t] instanceof o.default && c[t].size() <= a.untreeifyThreshold && (c[t] = new s.default(c[t]));
                var i = c[t].size();
                u += i - n;
            } }, this.find = function (e) { var t = r(e) & h - 1; return !!c[t] && c[t].find(e); }, this[Symbol.iterator] = function () { return function () { var e, t, r, o, s, a; return n(this, function (n) { switch (n.label) {
                case 0: e = 0, n.label = 1;
                case 1:
                    if (!(e < h))
                        return [3, 10];
                    for (; e < h && !c[e];)
                        ++e;
                    if (e >= h)
                        return [3, 10];
                    n.label = 2;
                case 2: n.trys.push([2, 7, 8, 9]), s = void 0, t = i(c[e]), r = t.next(), n.label = 3;
                case 3: return r.done ? [3, 6] : [4, r.value];
                case 4: n.sent(), n.label = 5;
                case 5: return r = t.next(), [3, 3];
                case 6: return [3, 9];
                case 7: return o = n.sent(), s = { error: o }, [3, 9];
                case 8:
                    try {
                        r && !r.done && (a = t.return) && a.call(t);
                    }
                    finally {
                        if (s)
                            throw s.error;
                    }
                    return [7];
                case 9: return ++e, [3, 1];
                case 10: return [2];
            } }); }(); }, e.forEach(function (e) { return l.insert(e); }), Object.freeze(this); }
            a.initSize = 16, a.maxSize = 1 << 30, a.sigma = .75, a.treeifyThreshold = 8, a.untreeifyThreshold = 6, a.minTreeifySize = 64, Object.freeze(a), r.default = a;
        }, { "../LinkList/LinkList": 29, "../Set/Set": 33 }], 29: [function (e, t, r) {
            "use strict";
            var n = this && this.__generator || function (e, t) { var r, n, i, o, s = { label: 0, sent: function () { if (1 & i[0])
                    throw i[1]; return i[1]; }, trys: [], ops: [] }; return o = { next: a(0), throw: a(1), return: a(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function () { return this; }), o; function a(o) { return function (a) { return function (o) { if (r)
                throw new TypeError("Generator is already executing."); for (; s;)
                try {
                    if (r = 1, n && (i = 2 & o[0] ? n.return : o[0] ? n.throw || ((i = n.return) && i.call(n), 0) : n.next) && !(i = i.call(n, o[1])).done)
                        return i;
                    switch (n = 0, i && (o = [2 & o[0], i.value]), o[0]) {
                        case 0:
                        case 1:
                            i = o;
                            break;
                        case 4: return s.label++, { value: o[1], done: !1 };
                        case 5:
                            s.label++, n = o[1], o = [0];
                            continue;
                        case 7:
                            o = s.ops.pop(), s.trys.pop();
                            continue;
                        default:
                            if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
                                s = 0;
                                continue;
                            }
                            if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
                                s.label = o[1];
                                break;
                            }
                            if (6 === o[0] && s.label < i[1]) {
                                s.label = i[1], i = o;
                                break;
                            }
                            if (i && s.label < i[2]) {
                                s.label = i[2], s.ops.push(o);
                                break;
                            }
                            i[2] && s.ops.pop(), s.trys.pop();
                            continue;
                    }
                    o = t.call(e, s);
                }
                catch (e) {
                    o = [6, e], n = 0;
                }
                finally {
                    r = i = 0;
                } if (5 & o[0])
                throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 }; }([o, a]); }; } };
            Object.defineProperty(r, "__esModule", { value: !0 });
            var i = function () { return function (e) { this.value = void 0, this.pre = void 0, this.next = void 0, this.value = e; }; }();
            function o(e) { var t = this; void 0 === e && (e = []); var r = 0, o = void 0, s = void 0; this.size = function () { return r; }, this.empty = function () { return 0 === r; }, this.clear = function () { o = s = void 0, r = 0; }, this.front = function () { return null === o || void 0 === o ? void 0 : o.value; }, this.back = function () { return null === s || void 0 === s ? void 0 : s.value; }, this.forEach = function (e) { for (var t = o, r = 0; t;) {
                if (void 0 === t.value)
                    throw new Error("unknown error");
                e(t.value, r++), t = t.next;
            } }, this.getElementByPos = function (e) { if (e < 0 || e >= r)
                throw new Error("pos must more then 0 and less then the list length"); for (var t = o; e-- && t;)
                t = t.next; if (!t || void 0 === t.value)
                throw new Error("unknown error"); return t.value; }, this.eraseElementByPos = function (e) { if (e < 0 || e >= r)
                throw new Error("erase pos must more then 0 and less then the list length"); if (0 === e)
                this.popFront();
            else if (e === r - 1)
                this.popBack();
            else {
                for (var t = o; e--;) {
                    if (!(null === t || void 0 === t ? void 0 : t.next))
                        throw new Error("unknown error");
                    t = t.next;
                }
                if (!t || !t.pre || !t.next)
                    throw new Error("unknown error");
                var n = t.pre, i = t.next;
                i.pre = n, n.next = i, r > 0 && --r;
            } }, this.eraseElementByValue = function (e) { for (; o && o.value === e;)
                this.popFront(); for (; s && s.value === e;)
                this.popBack(); if (o)
                for (var t = o; t;) {
                    if (t.value === e) {
                        var n = t.pre, i = t.next;
                        i && (i.pre = n), n && (n.next = i), r > 0 && --r;
                    }
                    t = t.next;
                } }, this.pushBack = function (e) { if (null === e || void 0 === e)
                throw new Error("you can't push null or undefined here"); ++r; var t = new i(e); s ? (s.next = t, t.pre = s, s = t) : o = s = t; }, this.popBack = function () { s && (r > 0 && --r, s && (o === s ? o = s = void 0 : (s = s.pre) && (s.next = void 0))); }, this.setElementByPos = function (e, t) { if (null === t || void 0 === t)
                throw new Error("you can't set null or undefined here"); if (e < 0 || e >= r)
                throw new Error("pos must more then 0 and less then the list length"); for (var n = o; e--;) {
                if (!n)
                    throw new Error("unknown error");
                n = n.next;
            } n && (n.value = t); }, this.insert = function (e, t, n) { if (void 0 === n && (n = 1), null === t || void 0 === t)
                throw new Error("you can't insert null or undefined here"); if (e < 0 || e > r)
                throw new Error("insert pos must more then 0 and less then or equal to the list length"); if (n < 0)
                throw new Error("insert size must more than 0"); if (0 === e)
                for (; n--;)
                    this.pushFront(t);
            else if (e === r)
                for (; n--;)
                    this.pushBack(t);
            else {
                for (var s = o, a = 1; a < e; ++a) {
                    if (!(null === s || void 0 === s ? void 0 : s.next))
                        throw new Error("unknown error");
                    s = null === s || void 0 === s ? void 0 : s.next;
                }
                if (!s)
                    throw new Error("unknown error");
                var l = s.next;
                for (r += n; n--;)
                    s.next = new i(t), s.next.pre = s, s = s.next;
                s.next = l, l && (l.pre = s);
            } }, this.find = function (e) { for (var t = o; t;) {
                if (t.value === e)
                    return !0;
                t = t.next;
            } return !1; }, this.reverse = function () { for (var e = o, t = s, n = 0; e && t && 2 * n < r;) {
                var i = e.value;
                e.value = t.value, t.value = i, e = e.next, t = t.pre, ++n;
            } }, this.unique = function () { for (var e = o; e;) {
                for (var t = e; t && t.next && t.value === t.next.value;)
                    t = t.next, r > 0 && --r;
                e.next = t.next, e.next && (e.next.pre = e), e = e.next;
            } }, this.sort = function (e) { var t = []; this.forEach(function (e) { t.push(e); }), t.sort(e); var r = o; t.forEach(function (e) { r && (r.value = e, r = r.next); }); }, this.pushFront = function (e) { if (null === e || void 0 === e)
                throw new Error("you can't push null or undefined here"); ++r; var t = new i(e); o ? (t.next = o, o.pre = t, o = t) : o = s = t; }, this.popFront = function () { o && (r > 0 && --r, o && (o === s ? o = s = void 0 : (o = o.next) && (o.pre = void 0))); }, this.merge = function (e) { var t = this, n = o; e.forEach(function (e) { for (; n && void 0 !== n.value && n.value <= e;)
                n = n.next; if (void 0 === n)
                t.pushBack(e), n = s;
            else if (n === o)
                t.pushFront(e), n = o;
            else {
                ++r;
                var a = n.pre;
                a && (a.next = new i(e), a.next.pre = a, a.next.next = n, n && (n.pre = a.next));
            } }); }, this[Symbol.iterator] = function () { return function () { var e; return n(this, function (t) { switch (t.label) {
                case 0: e = o, t.label = 1;
                case 1:
                    if (void 0 === e)
                        return [3, 3];
                    if (!e.value)
                        throw new Error("unknown error");
                    return [4, e.value];
                case 2: return t.sent(), e = e.next, [3, 1];
                case 3: return [2];
            } }); }(); }, e.forEach(function (e) { return t.pushBack(e); }), Object.freeze(this); }
            Object.freeze(o), r.default = o;
        }, {}], 30: [function (e, t, r) {
            "use strict";
            var n = this && this.__generator || function (e, t) { var r, n, i, o, s = { label: 0, sent: function () { if (1 & i[0])
                    throw i[1]; return i[1]; }, trys: [], ops: [] }; return o = { next: a(0), throw: a(1), return: a(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function () { return this; }), o; function a(o) { return function (a) { return function (o) { if (r)
                throw new TypeError("Generator is already executing."); for (; s;)
                try {
                    if (r = 1, n && (i = 2 & o[0] ? n.return : o[0] ? n.throw || ((i = n.return) && i.call(n), 0) : n.next) && !(i = i.call(n, o[1])).done)
                        return i;
                    switch (n = 0, i && (o = [2 & o[0], i.value]), o[0]) {
                        case 0:
                        case 1:
                            i = o;
                            break;
                        case 4: return s.label++, { value: o[1], done: !1 };
                        case 5:
                            s.label++, n = o[1], o = [0];
                            continue;
                        case 7:
                            o = s.ops.pop(), s.trys.pop();
                            continue;
                        default:
                            if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
                                s = 0;
                                continue;
                            }
                            if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
                                s.label = o[1];
                                break;
                            }
                            if (6 === o[0] && s.label < i[1]) {
                                s.label = i[1], i = o;
                                break;
                            }
                            if (i && s.label < i[2]) {
                                s.label = i[2], s.ops.push(o);
                                break;
                            }
                            i[2] && s.ops.pop(), s.trys.pop();
                            continue;
                    }
                    o = t.call(e, s);
                }
                catch (e) {
                    o = [6, e], n = 0;
                }
                finally {
                    r = i = 0;
                } if (5 & o[0])
                throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 }; }([o, a]); }; } }, i = this && this.__values || function (e) { var t = "function" == typeof Symbol && Symbol.iterator, r = t && e[t], n = 0; if (r)
                return r.call(e); if (e && "number" == typeof e.length)
                return { next: function () { return e && n >= e.length && (e = void 0), { value: e && e[n++], done: !e }; } }; throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined."); };
            Object.defineProperty(r, "__esModule", { value: !0 });
            var o = e("../Base/TreeNode");
            function s(e, t) { var r = this; void 0 === e && (e = []), t = t || function (e, t) { return e < t ? -1 : e > t ? 1 : 0; }; var s = 0, a = new o.default; a.color = o.default.TreeNodeColorType.black, this.size = function () { return s; }, this.empty = function () { return 0 === s; }, this.clear = function () { s = 0, a.key = a.value = void 0, a.leftChild = a.rightChild = a.brother = void 0; }; var l = function (e) { if (!e || void 0 === e.key)
                throw new Error("unknown error"); return e.leftChild ? l(e.leftChild) : e; }, u = function (e) { if (!e || void 0 === e.key)
                throw new Error("unknown error"); return e.rightChild ? u(e.rightChild) : e; }; this.front = function () { if (!this.empty()) {
                var e = l(a);
                if (void 0 === e.key || void 0 === e.value)
                    throw new Error("unknown error");
                return { key: e.key, value: e.value };
            } }, this.back = function () { if (!this.empty()) {
                var e = u(a);
                if (void 0 === e.key || void 0 === e.value)
                    throw new Error("unknown error");
                return { key: e.key, value: e.value };
            } }, this.forEach = function (e) { var t, r, n = 0; try {
                for (var o = i(this), s = o.next(); !s.done; s = o.next()) {
                    e(s.value, n++);
                }
            }
            catch (e) {
                t = { error: e };
            }
            finally {
                try {
                    s && !s.done && (r = o.return) && r.call(o);
                }
                finally {
                    if (t)
                        throw t.error;
                }
            } }, this.getElementByPos = function (e) { var t, r; if (e < 0 || e >= this.size())
                throw new Error("pos must more than 0 and less than set's size"); var n = 0; try {
                for (var o = i(this), s = o.next(); !s.done; s = o.next()) {
                    var a = s.value;
                    if (n === e)
                        return a;
                    ++n;
                }
            }
            catch (e) {
                t = { error: e };
            }
            finally {
                try {
                    s && !s.done && (r = o.return) && r.call(o);
                }
                finally {
                    if (t)
                        throw t.error;
                }
            } throw new Error("unknown Error"); }; var c = function (e, r) { if (e && void 0 !== e.key && void 0 !== e.value) {
                var n = t(e.key, r);
                return 0 === n ? { key: e.key, value: e.value } : n < 0 ? c(e.rightChild, r) : c(e.leftChild, r) || { key: e.key, value: e.value };
            } }; this.lowerBound = function (e) { return c(a, e); }; var h = function (e, r) { if (e && void 0 !== e.key && void 0 !== e.value)
                return t(e.key, r) <= 0 ? h(e.rightChild, r) : h(e.leftChild, r) || { key: e.key, value: e.value }; }; this.upperBound = function (e) { return h(a, e); }; var f = function (e, r) { if (e && void 0 !== e.key && void 0 !== e.value) {
                var n = t(e.key, r);
                return 0 === n ? { key: e.key, value: e.value } : n > 0 ? f(e.leftChild, r) : f(e.rightChild, r) || { key: e.key, value: e.value };
            } }; this.reverseLowerBound = function (e) { return f(a, e); }; var p = function (e, r) { if (e && void 0 !== e.key && void 0 !== e.value)
                return t(e.key, r) >= 0 ? p(e.leftChild, r) : p(e.rightChild, r) || { key: e.key, value: e.value }; }; this.reverseUpperBound = function (e) { return p(a, e); }; var d = function (e) { var t = e.parent; if (!t) {
                if (e === a)
                    return;
                throw new Error("unknown error");
            } if (e.color !== o.default.TreeNodeColorType.red) {
                var r = e.brother;
                if (!r)
                    throw new Error("unknown error");
                if (e === t.leftChild) {
                    if (r.color === o.default.TreeNodeColorType.red) {
                        r.color = o.default.TreeNodeColorType.black, t.color = o.default.TreeNodeColorType.red;
                        var n = t.rotateLeft();
                        a === t && (a = n), d(e);
                    }
                    else if (r.color === o.default.TreeNodeColorType.black)
                        if (r.rightChild && r.rightChild.color === o.default.TreeNodeColorType.red) {
                            r.color = t.color, t.color = o.default.TreeNodeColorType.black, r.rightChild && (r.rightChild.color = o.default.TreeNodeColorType.black);
                            n = t.rotateLeft();
                            a === t && (a = n), e.color = o.default.TreeNodeColorType.black;
                        }
                        else if (r.rightChild && r.rightChild.color !== o.default.TreeNodeColorType.black || !r.leftChild || r.leftChild.color !== o.default.TreeNodeColorType.red)
                            r.leftChild && r.leftChild.color !== o.default.TreeNodeColorType.black || r.rightChild && r.rightChild.color !== o.default.TreeNodeColorType.black || (r.color = o.default.TreeNodeColorType.red, d(t));
                        else {
                            r.color = o.default.TreeNodeColorType.red, r.leftChild && (r.leftChild.color = o.default.TreeNodeColorType.black);
                            n = r.rotateRight();
                            a === r && (a = n), d(e);
                        }
                }
                else if (e === t.rightChild)
                    if (r.color === o.default.TreeNodeColorType.red) {
                        r.color = o.default.TreeNodeColorType.black, t.color = o.default.TreeNodeColorType.red;
                        n = t.rotateRight();
                        a === t && (a = n), d(e);
                    }
                    else if (r.color === o.default.TreeNodeColorType.black)
                        if (r.leftChild && r.leftChild.color === o.default.TreeNodeColorType.red) {
                            r.color = t.color, t.color = o.default.TreeNodeColorType.black, r.leftChild && (r.leftChild.color = o.default.TreeNodeColorType.black);
                            n = t.rotateRight();
                            a === t && (a = n), e.color = o.default.TreeNodeColorType.black;
                        }
                        else if (r.leftChild && r.leftChild.color !== o.default.TreeNodeColorType.black || !r.rightChild || r.rightChild.color !== o.default.TreeNodeColorType.red)
                            r.leftChild && r.leftChild.color !== o.default.TreeNodeColorType.black || r.rightChild && r.rightChild.color !== o.default.TreeNodeColorType.black || (r.color = o.default.TreeNodeColorType.red, d(t));
                        else {
                            r.color = o.default.TreeNodeColorType.red, r.rightChild && (r.rightChild.color = o.default.TreeNodeColorType.black);
                            n = r.rotateLeft();
                            a === r && (a = n), d(e);
                        }
            }
            else
                e.color = o.default.TreeNodeColorType.black; }, g = function (e) { for (var t = e; t.leftChild || t.rightChild;) {
                if (t.rightChild) {
                    t = l(t.rightChild);
                    var r = e.key;
                    e.key = t.key, t.key = r;
                    var n = e.value;
                    e.value = t.value, t.value = n, e = t;
                }
                if (t.leftChild) {
                    t = u(t.leftChild);
                    r = e.key;
                    e.key = t.key, t.key = r;
                    n = e.value;
                    e.value = t.value, t.value = n, e = t;
                }
            } d(t), t && t.remove(), --s, a.color = o.default.TreeNodeColorType.black; }, y = function (e, t) { return !(!e || void 0 === e.key) && (!!y(e.leftChild, t) || (!!t(e) || y(e.rightChild, t))); }; this.eraseElementByPos = function (e) { if (e < 0 || e >= s)
                throw new Error("pos must more than 0 and less than set's size"); var t = 0; y(a, function (r) { return e === t ? (g(r), !0) : (++t, !1); }); }, this.eraseElementByKey = function (e) { if (!this.empty()) {
                var r = v(a, e);
                void 0 !== r && void 0 !== r.key && 0 === t(r.key, e) && g(r);
            } }; var b = function (e, r) { if (!e || void 0 === e.key)
                throw new Error("unknown error"); var n = t(r, e.key); return n < 0 ? e.leftChild ? b(e.leftChild, r) : (e.leftChild = new o.default, e.leftChild.parent = e, e.leftChild.brother = e.rightChild, e.rightChild && (e.rightChild.brother = e.leftChild), e.leftChild) : n > 0 ? e.rightChild ? b(e.rightChild, r) : (e.rightChild = new o.default, e.rightChild.parent = e, e.rightChild.brother = e.leftChild, e.leftChild && (e.leftChild.brother = e.rightChild), e.rightChild) : e; }, m = function (e) { var t = e.parent; if (!t) {
                if (e === a)
                    return;
                throw new Error("unknown error");
            } if (t.color !== o.default.TreeNodeColorType.black && t.color === o.default.TreeNodeColorType.red) {
                var r = t.brother, n = t.parent;
                if (!n)
                    throw new Error("unknown error");
                if (r && r.color === o.default.TreeNodeColorType.red)
                    r.color = t.color = o.default.TreeNodeColorType.black, n.color = o.default.TreeNodeColorType.red, m(n);
                else if (!r || r.color === o.default.TreeNodeColorType.black)
                    if (t === n.leftChild) {
                        if (e === t.leftChild) {
                            t.color = o.default.TreeNodeColorType.black, n.color = o.default.TreeNodeColorType.red;
                            var i = n.rotateRight();
                            n === a && (a = i);
                        }
                        else if (e === t.rightChild) {
                            i = t.rotateLeft();
                            n === a && (a = i), m(t);
                        }
                    }
                    else if (t === n.rightChild)
                        if (e === t.leftChild) {
                            i = t.rotateRight();
                            n === a && (a = i), m(t);
                        }
                        else if (e === t.rightChild) {
                            t.color = o.default.TreeNodeColorType.black, n.color = o.default.TreeNodeColorType.red;
                            i = n.rotateLeft();
                            n === a && (a = i);
                        }
            } }; this.setElement = function (e, r) { if (null === e || void 0 === e)
                throw new Error("to avoid some unnecessary errors, we don't suggest you insert null or undefined here"); if (null !== r && void 0 !== r) {
                if (this.empty())
                    return ++s, a.key = e, a.value = r, void (a.color = o.default.TreeNodeColorType.black);
                var n = b(a, e);
                void 0 === n.key || 0 !== t(n.key, e) ? (++s, n.key = e, n.value = r, m(n), a.color = o.default.TreeNodeColorType.black) : n.value = r;
            }
            else
                this.eraseElementByKey(e); }; var v = function (e, r) { if (e && void 0 !== e.key) {
                var n = t(r, e.key);
                return n < 0 ? v(e.leftChild, r) : n > 0 ? v(e.rightChild, r) : e;
            } }; this.find = function (e) { return !!v(a, e); }, this.getElementByKey = function (e) { var t = v(a, e); if (void 0 === (null === t || void 0 === t ? void 0 : t.key) || void 0 === (null === t || void 0 === t ? void 0 : t.value))
                throw new Error("unknown error"); return t.value; }, this.union = function (e) { var t = this; e.forEach(function (e) { var r = e.key, n = e.value; return t.setElement(r, n); }); }, this.getHeight = function () { if (this.empty())
                return 0; var e = function (t) { return t ? Math.max(e(t.leftChild), e(t.rightChild)) + 1 : 1; }; return e(a); }; var w = function (e) { return n(this, function (t) { switch (t.label) {
                case 0: return e && void 0 !== e.key && void 0 !== e.value ? [5, i(w(e.leftChild))] : [2];
                case 1: return t.sent(), [4, { key: e.key, value: e.value }];
                case 2: return t.sent(), [5, i(w(e.rightChild))];
                case 3: return t.sent(), [2];
            } }); }; this[Symbol.iterator] = function () { return w(a); }, e.forEach(function (e) { var t = e.key, n = e.value; return r.setElement(t, n); }), Object.freeze(this); }
            Object.freeze(s), r.default = s;
        }, { "../Base/TreeNode": 25 }], 31: [function (e, t, r) {
            "use strict";
            function n(e, t) { void 0 === e && (e = []), t = t || function (e, t) { return e > t ? -1 : e < t ? 1 : 0; }; var r = []; e.forEach(function (e) { return r.push(e); }); var n = r.length, i = function (e, t) { if (e < 0 || e >= n)
                throw new Error("unknown error"); if (t < 0 || t >= n)
                throw new Error("unknown error"); var i = r[e]; r[e] = r[t], r[t] = i; }, o = function (e) { if (e < 0 || e >= n)
                throw new Error("unknown error"); var o = 2 * e + 1, s = 2 * e + 2; o < n && t(r[e], r[o]) > 0 && i(e, o), s < n && t(r[e], r[s]) > 0 && i(e, s); }; !function () { for (var e = Math.floor((n - 1) / 2); e >= 0; --e)
                for (var o = e, s = 2 * o + 1; s < n;) {
                    var a = s + 1, l = s;
                    if (a < n && t(r[s], r[a]) > 0 && (l = a), t(r[o], r[l]) <= 0)
                        break;
                    i(o, l), s = 2 * (o = l) + 1;
                } }(), this.size = function () { return n; }, this.empty = function () { return 0 === n; }, this.clear = function () { n = 0, r.length = 0; }, this.push = function (e) { if (r.push(e), 1 !== ++n)
                for (var i = n - 1; i > 0;) {
                    var s = Math.floor((i - 1) / 2);
                    if (t(r[s], e) <= 0)
                        break;
                    o(s), i = s;
                } }, this.pop = function () { if (!this.empty())
                if (1 !== this.size()) {
                    var e = r[n - 1];
                    --n;
                    for (var i = 0; i < this.size();) {
                        var o = 2 * i + 1, s = 2 * i + 2;
                        if (o >= this.size())
                            break;
                        var a = o;
                        if (s < this.size() && t(r[o], r[s]) > 0 && (a = s), t(r[a], e) >= 0)
                            break;
                        r[i] = r[a], i = a;
                    }
                    r[i] = e;
                }
                else
                    --n; }, this.top = function () { return r[0]; }, Object.freeze(this); }
            Object.defineProperty(r, "__esModule", { value: !0 }), Object.freeze(n), r.default = n;
        }, {}], 32: [function (e, t, r) {
            "use strict";
            Object.defineProperty(r, "__esModule", { value: !0 });
            var n = e("../LinkList/LinkList");
            function i(e) { void 0 === e && (e = []); var t = new n.default(e); this.size = function () { return t.size(); }, this.empty = function () { return t.empty(); }, this.clear = function () { t.clear(); }, this.push = function (e) { t.pushBack(e); }, this.pop = function () { t.popFront(); }, this.front = function () { return t.front(); }, Object.freeze(this); }
            Object.freeze(i), r.default = i;
        }, { "../LinkList/LinkList": 29 }], 33: [function (e, t, r) {
            "use strict";
            var n = this && this.__generator || function (e, t) { var r, n, i, o, s = { label: 0, sent: function () { if (1 & i[0])
                    throw i[1]; return i[1]; }, trys: [], ops: [] }; return o = { next: a(0), throw: a(1), return: a(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function () { return this; }), o; function a(o) { return function (a) { return function (o) { if (r)
                throw new TypeError("Generator is already executing."); for (; s;)
                try {
                    if (r = 1, n && (i = 2 & o[0] ? n.return : o[0] ? n.throw || ((i = n.return) && i.call(n), 0) : n.next) && !(i = i.call(n, o[1])).done)
                        return i;
                    switch (n = 0, i && (o = [2 & o[0], i.value]), o[0]) {
                        case 0:
                        case 1:
                            i = o;
                            break;
                        case 4: return s.label++, { value: o[1], done: !1 };
                        case 5:
                            s.label++, n = o[1], o = [0];
                            continue;
                        case 7:
                            o = s.ops.pop(), s.trys.pop();
                            continue;
                        default:
                            if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
                                s = 0;
                                continue;
                            }
                            if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
                                s.label = o[1];
                                break;
                            }
                            if (6 === o[0] && s.label < i[1]) {
                                s.label = i[1], i = o;
                                break;
                            }
                            if (i && s.label < i[2]) {
                                s.label = i[2], s.ops.push(o);
                                break;
                            }
                            i[2] && s.ops.pop(), s.trys.pop();
                            continue;
                    }
                    o = t.call(e, s);
                }
                catch (e) {
                    o = [6, e], n = 0;
                }
                finally {
                    r = i = 0;
                } if (5 & o[0])
                throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 }; }([o, a]); }; } }, i = this && this.__values || function (e) { var t = "function" == typeof Symbol && Symbol.iterator, r = t && e[t], n = 0; if (r)
                return r.call(e); if (e && "number" == typeof e.length)
                return { next: function () { return e && n >= e.length && (e = void 0), { value: e && e[n++], done: !e }; } }; throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined."); };
            Object.defineProperty(r, "__esModule", { value: !0 });
            var o = e("../Base/TreeNode");
            function s(e, t) { var r = this; void 0 === e && (e = []), t = t || function (e, t) { return e < t ? -1 : e > t ? 1 : 0; }; var s = 0, a = new o.default; a.color = o.default.TreeNodeColorType.black, this.size = function () { return s; }, this.empty = function () { return 0 === s; }, this.clear = function () { s = 0, a.key = void 0, a.leftChild = a.rightChild = a.brother = a.parent = void 0, a.color = o.default.TreeNodeColorType.black; }; var l = function (e) { if (!e || void 0 === e.key)
                throw new Error("unknown error"); return e.leftChild ? l(e.leftChild) : e; }, u = function (e) { if (!e || void 0 === e.key)
                throw new Error("unknown error"); return e.rightChild ? u(e.rightChild) : e; }; this.front = function () { if (!this.empty())
                return l(a).key; }, this.back = function () { if (!this.empty())
                return u(a).key; }, this.forEach = function (e) { var t, r, n = 0; try {
                for (var o = i(this), s = o.next(); !s.done; s = o.next()) {
                    e(s.value, n++);
                }
            }
            catch (e) {
                t = { error: e };
            }
            finally {
                try {
                    s && !s.done && (r = o.return) && r.call(o);
                }
                finally {
                    if (t)
                        throw t.error;
                }
            } }, this.getElementByPos = function (e) { var t, r; if (e < 0 || e >= this.size())
                throw new Error("pos must more than 0 and less than set's size"); var n = 0; try {
                for (var o = i(this), s = o.next(); !s.done; s = o.next()) {
                    var a = s.value;
                    if (n === e)
                        return a;
                    ++n;
                }
            }
            catch (e) {
                t = { error: e };
            }
            finally {
                try {
                    s && !s.done && (r = o.return) && r.call(o);
                }
                finally {
                    if (t)
                        throw t.error;
                }
            } throw new Error("unknown error"); }; var c = function (e) { var t = e.parent; if (!t) {
                if (e === a)
                    return;
                throw new Error("unknown error");
            } if (e.color !== o.default.TreeNodeColorType.red) {
                var r = e.brother;
                if (!r)
                    throw new Error("unknown error");
                if (e === t.leftChild) {
                    if (r.color === o.default.TreeNodeColorType.red) {
                        r.color = o.default.TreeNodeColorType.black, t.color = o.default.TreeNodeColorType.red;
                        var n = t.rotateLeft();
                        a === t && (a = n), c(e);
                    }
                    else if (r.color === o.default.TreeNodeColorType.black)
                        if (r.rightChild && r.rightChild.color === o.default.TreeNodeColorType.red) {
                            r.color = t.color, t.color = o.default.TreeNodeColorType.black, r.rightChild && (r.rightChild.color = o.default.TreeNodeColorType.black);
                            n = t.rotateLeft();
                            a === t && (a = n), e.color = o.default.TreeNodeColorType.black;
                        }
                        else if (r.rightChild && r.rightChild.color !== o.default.TreeNodeColorType.black || !r.leftChild || r.leftChild.color !== o.default.TreeNodeColorType.red)
                            r.leftChild && r.leftChild.color !== o.default.TreeNodeColorType.black || r.rightChild && r.rightChild.color !== o.default.TreeNodeColorType.black || (r.color = o.default.TreeNodeColorType.red, c(t));
                        else {
                            r.color = o.default.TreeNodeColorType.red, r.leftChild && (r.leftChild.color = o.default.TreeNodeColorType.black);
                            n = r.rotateRight();
                            a === r && (a = n), c(e);
                        }
                }
                else if (e === t.rightChild)
                    if (r.color === o.default.TreeNodeColorType.red) {
                        r.color = o.default.TreeNodeColorType.black, t.color = o.default.TreeNodeColorType.red;
                        n = t.rotateRight();
                        a === t && (a = n), c(e);
                    }
                    else if (r.color === o.default.TreeNodeColorType.black)
                        if (r.leftChild && r.leftChild.color === o.default.TreeNodeColorType.red) {
                            r.color = t.color, t.color = o.default.TreeNodeColorType.black, r.leftChild && (r.leftChild.color = o.default.TreeNodeColorType.black);
                            n = t.rotateRight();
                            a === t && (a = n), e.color = o.default.TreeNodeColorType.black;
                        }
                        else if (r.leftChild && r.leftChild.color !== o.default.TreeNodeColorType.black || !r.rightChild || r.rightChild.color !== o.default.TreeNodeColorType.red)
                            r.leftChild && r.leftChild.color !== o.default.TreeNodeColorType.black || r.rightChild && r.rightChild.color !== o.default.TreeNodeColorType.black || (r.color = o.default.TreeNodeColorType.red, c(t));
                        else {
                            r.color = o.default.TreeNodeColorType.red, r.rightChild && (r.rightChild.color = o.default.TreeNodeColorType.black);
                            n = r.rotateLeft();
                            a === r && (a = n), c(e);
                        }
            }
            else
                e.color = o.default.TreeNodeColorType.black; }, h = function (e) { for (var t = e; t.leftChild || t.rightChild;) {
                if (t.rightChild) {
                    t = l(t.rightChild);
                    var r = e.key;
                    e.key = t.key, t.key = r, e = t;
                }
                if (t.leftChild) {
                    t = u(t.leftChild);
                    r = e.key;
                    e.key = t.key, t.key = r, e = t;
                }
            } c(t), t && t.remove(), --s, a.color = o.default.TreeNodeColorType.black; }, f = function (e, t) { return !(!e || void 0 === e.key) && (!!f(e.leftChild, t) || (!!t(e) || f(e.rightChild, t))); }; this.eraseElementByPos = function (e) { if (e < 0 || e >= s)
                throw new Error("pos must more than 0 and less than set's size"); var t = 0; f(a, function (r) { return e === t ? (h(r), !0) : (++t, !1); }); }, this.eraseElementByValue = function (e) { if (!this.empty()) {
                var r = g(a, e);
                void 0 !== r && void 0 !== r.key && 0 === t(r.key, e) && h(r);
            } }; var p = function (e, r) { if (!e || void 0 === e.key)
                throw new Error("unknown error"); var n = t(r, e.key); return n < 0 ? e.leftChild ? p(e.leftChild, r) : (e.leftChild = new o.default, e.leftChild.parent = e, e.leftChild.brother = e.rightChild, e.rightChild && (e.rightChild.brother = e.leftChild), e.leftChild) : n > 0 ? e.rightChild ? p(e.rightChild, r) : (e.rightChild = new o.default, e.rightChild.parent = e, e.rightChild.brother = e.leftChild, e.leftChild && (e.leftChild.brother = e.rightChild), e.rightChild) : e; }, d = function (e) { var t = e.parent; if (!t) {
                if (e === a)
                    return;
                throw new Error("unknown error");
            } if (t.color !== o.default.TreeNodeColorType.black && t.color === o.default.TreeNodeColorType.red) {
                var r = t.brother, n = t.parent;
                if (!n)
                    throw new Error("unknown error");
                if (r && r.color === o.default.TreeNodeColorType.red)
                    r.color = t.color = o.default.TreeNodeColorType.black, n.color = o.default.TreeNodeColorType.red, d(n);
                else if (!r || r.color === o.default.TreeNodeColorType.black)
                    if (t === n.leftChild) {
                        if (e === t.leftChild) {
                            t.color = o.default.TreeNodeColorType.black, n.color = o.default.TreeNodeColorType.red;
                            var i = n.rotateRight();
                            n === a && (a = i);
                        }
                        else if (e === t.rightChild) {
                            i = t.rotateLeft();
                            n === a && (a = i), d(t);
                        }
                    }
                    else if (t === n.rightChild)
                        if (e === t.leftChild) {
                            i = t.rotateRight();
                            n === a && (a = i), d(t);
                        }
                        else if (e === t.rightChild) {
                            t.color = o.default.TreeNodeColorType.black, n.color = o.default.TreeNodeColorType.red;
                            i = n.rotateLeft();
                            n === a && (a = i);
                        }
            } }; this.insert = function (e) { if (null === e || void 0 === e)
                throw new Error("to avoid some unnecessary errors, we don't suggest you insert null or undefined here"); if (this.empty())
                return ++s, a.key = e, void (a.color = o.default.TreeNodeColorType.black); var r = p(a, e); void 0 !== r.key && 0 === t(r.key, e) || (++s, r.key = e, d(r), a.color = o.default.TreeNodeColorType.black); }; var g = function (e, r) { if (e && void 0 !== e.key) {
                var n = t(r, e.key);
                return n < 0 ? g(e.leftChild, r) : n > 0 ? g(e.rightChild, r) : e;
            } }; this.find = function (e) { var r = g(a, e); return void 0 !== r && void 0 !== r.key && 0 === t(r.key, e); }; var y = function (e, r) { if (e && void 0 !== e.key) {
                var n = t(e.key, r);
                return 0 === n ? e.key : n < 0 ? y(e.rightChild, r) : y(e.leftChild, r) || e.key;
            } }; this.lowerBound = function (e) { return y(a, e); }; var b = function (e, r) { if (e && void 0 !== e.key)
                return t(e.key, r) <= 0 ? b(e.rightChild, r) : b(e.leftChild, r) || e.key; }; this.upperBound = function (e) { return b(a, e); }; var m = function (e, r) { if (e && void 0 !== e.key) {
                var n = t(e.key, r);
                return 0 === n ? e.key : n > 0 ? m(e.leftChild, r) : m(e.rightChild, r) || e.key;
            } }; this.reverseLowerBound = function (e) { return m(a, e); }; var v = function (e, r) { if (e && void 0 !== e.key)
                return t(e.key, r) >= 0 ? v(e.leftChild, r) : v(e.rightChild, r) || e.key; }; this.reverseUpperBound = function (e) { return v(a, e); }, this.union = function (e) { var t = this; e.forEach(function (e) { return t.insert(e); }); }, this.getHeight = function () { if (this.empty())
                return 0; var e = function (t) { return t ? Math.max(e(t.leftChild), e(t.rightChild)) + 1 : 1; }; return e(a); }; var w = function (e) { return n(this, function (t) { switch (t.label) {
                case 0: return e && void 0 !== e.key ? [5, i(w(e.leftChild))] : [2];
                case 1: return t.sent(), [4, e.key];
                case 2: return t.sent(), [5, i(w(e.rightChild))];
                case 3: return t.sent(), [2];
            } }); }; this[Symbol.iterator] = function () { return w(a); }, e.forEach(function (e) { return r.insert(e); }), Object.freeze(this); }
            Object.freeze(s), r.default = s;
        }, { "../Base/TreeNode": 25 }], 34: [function (e, t, r) {
            "use strict";
            function n(e) { var t = this; void 0 === e && (e = []); var r = 0, n = []; this.size = function () { return r; }, this.empty = function () { return 0 === r; }, this.clear = function () { r = 0, n.length = 0; }, this.push = function (e) { n.push(e), ++r; }, this.pop = function () { n.pop(), r > 0 && --r; }, this.top = function () { return n[r - 1]; }, e.forEach(function (e) { return t.push(e); }), Object.freeze(this); }
            Object.defineProperty(r, "__esModule", { value: !0 }), Object.freeze(n), r.default = n;
        }, {}], 35: [function (e, t, r) {
            "use strict";
            var n = this && this.__generator || function (e, t) { var r, n, i, o, s = { label: 0, sent: function () { if (1 & i[0])
                    throw i[1]; return i[1]; }, trys: [], ops: [] }; return o = { next: a(0), throw: a(1), return: a(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function () { return this; }), o; function a(o) { return function (a) { return function (o) { if (r)
                throw new TypeError("Generator is already executing."); for (; s;)
                try {
                    if (r = 1, n && (i = 2 & o[0] ? n.return : o[0] ? n.throw || ((i = n.return) && i.call(n), 0) : n.next) && !(i = i.call(n, o[1])).done)
                        return i;
                    switch (n = 0, i && (o = [2 & o[0], i.value]), o[0]) {
                        case 0:
                        case 1:
                            i = o;
                            break;
                        case 4: return s.label++, { value: o[1], done: !1 };
                        case 5:
                            s.label++, n = o[1], o = [0];
                            continue;
                        case 7:
                            o = s.ops.pop(), s.trys.pop();
                            continue;
                        default:
                            if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
                                s = 0;
                                continue;
                            }
                            if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
                                s.label = o[1];
                                break;
                            }
                            if (6 === o[0] && s.label < i[1]) {
                                s.label = i[1], i = o;
                                break;
                            }
                            if (i && s.label < i[2]) {
                                s.label = i[2], s.ops.push(o);
                                break;
                            }
                            i[2] && s.ops.pop(), s.trys.pop();
                            continue;
                    }
                    o = t.call(e, s);
                }
                catch (e) {
                    o = [6, e], n = 0;
                }
                finally {
                    r = i = 0;
                } if (5 & o[0])
                throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 }; }([o, a]); }; } }, i = this && this.__read || function (e, t) { var r = "function" == typeof Symbol && e[Symbol.iterator]; if (!r)
                return e; var n, i, o = r.call(e), s = []; try {
                for (; (void 0 === t || t-- > 0) && !(n = o.next()).done;)
                    s.push(n.value);
            }
            catch (e) {
                i = { error: e };
            }
            finally {
                try {
                    n && !n.done && (r = o.return) && r.call(o);
                }
                finally {
                    if (i)
                        throw i.error;
                }
            } return s; }, o = this && this.__spreadArray || function (e, t, r) { if (r || 2 === arguments.length)
                for (var n, i = 0, o = t.length; i < o; i++)
                    !n && i in t || (n || (n = Array.prototype.slice.call(t, 0, i)), n[i] = t[i]); return e.concat(n || Array.prototype.slice.call(t)); }, s = this && this.__values || function (e) { var t = "function" == typeof Symbol && Symbol.iterator, r = t && e[t], n = 0; if (r)
                return r.call(e); if (e && "number" == typeof e.length)
                return { next: function () { return e && n >= e.length && (e = void 0), { value: e && e[n++], done: !e }; } }; throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined."); };
            function a(e) { var t = this; void 0 === e && (e = []); var r = 0, a = []; this.size = function () { return r; }, this.empty = function () { return 0 === r; }, this.clear = function () { r = 0, a.length = 0; }, this.front = function () { if (!this.empty())
                return a[0]; }, this.back = function () { if (!this.empty())
                return a[r - 1]; }, this.forEach = function (e) { a.forEach(e); }, this.getElementByPos = function (e) { if (e < 0 || e >= r)
                throw new Error("pos must more than 0 and less than vector's size"); return a[e]; }, this.eraseElementByPos = function (e) { if (e < 0 || e >= r)
                throw new Error("pos must more than 0 and less than vector's size"); for (var t = e; t < r - 1; ++t)
                a[t] = a[t + 1]; this.popBack(); }, this.eraseElementByValue = function (e) { var t = []; this.forEach(function (r) { r !== e && t.push(r); }), t.forEach(function (e, t) { a[t] = e; }); for (var n = t.length; r > n;)
                this.popBack(); }, this.pushBack = function (e) { a.push(e), ++r; }, this.popBack = function () { a.pop(), r > 0 && --r; }, this.setElementByPos = function (e, t) { if (e < 0 || e >= r)
                throw new Error("pos must more than 0 and less than vector's size"); a[e] = t; }, this.insert = function (e, t, n) { if (void 0 === n && (n = 1), e < 0 || e > r)
                throw new Error("pos must more than 0 and less than or equal to vector's size"); a.splice.apply(a, o([e, 0], i(new Array(n).fill(t)), !1)), r += n; }, this.find = function (e) { return a.includes(e); }, this.reverse = function () { a.reverse(); }, this.unique = function () { var e, t = []; this.forEach(function (r, n) { 0 !== n && r === e || (t.push(r), e = r); }), t.forEach(function (e, t) { a[t] = e; }); for (var n = t.length; r > n;)
                this.popBack(); }, this.sort = function (e) { a.sort(e); }, this[Symbol.iterator] = function () { return function () { return n(this, function (e) { switch (e.label) {
                case 0: return [5, s(a)];
                case 1: return [2, e.sent()];
            } }); }(); }, e.forEach(function (e) { return t.pushBack(e); }), Object.freeze(this); }
            Object.defineProperty(r, "__esModule", { value: !0 }), Object.freeze(a), r.default = a;
        }, {}], 36: [function (e, t, r) {
            "use strict";
            Object.defineProperty(r, "__esModule", { value: !0 }), r.HashMap = r.HashSet = r.Map = r.Set = r.PriorityQueue = r.Deque = r.LinkList = r.Queue = r.Stack = r.Vector = void 0;
            var n = e("./Vector/Vector");
            r.Vector = n.default;
            var i = e("./Stack/Stack");
            r.Stack = i.default;
            var o = e("./Queue/Queue");
            r.Queue = o.default;
            var s = e("./LinkList/LinkList");
            r.LinkList = s.default;
            var a = e("./Deque/Deque");
            r.Deque = a.default;
            var l = e("./PriorityQueue/PriorityQueue");
            r.PriorityQueue = l.default;
            var u = e("./Set/Set");
            r.Set = u.default;
            var c = e("./Map/Map");
            r.Map = c.default;
            var h = e("./HashSet/HashSet");
            r.HashSet = h.default;
            var f = e("./HashMap/HashMap");
            r.HashMap = f.default;
        }, { "./Deque/Deque": 26, "./HashMap/HashMap": 27, "./HashSet/HashSet": 28, "./LinkList/LinkList": 29, "./Map/Map": 30, "./PriorityQueue/PriorityQueue": 31, "./Queue/Queue": 32, "./Set/Set": 33, "./Stack/Stack": 34, "./Vector/Vector": 35 }], 37: [function (e, t, r) {
            "use strict";
            var n = e("yallist"), i = Symbol("max"), o = Symbol("length"), s = Symbol("lengthCalculator"), a = Symbol("allowStale"), l = Symbol("maxAge"), u = Symbol("dispose"), c = Symbol("noDisposeOnSet"), h = Symbol("lruList"), f = Symbol("cache"), p = Symbol("updateAgeOnGet"), d = function () { return 1; };
            var g = function (e, t, r) { var n = e[f].get(t); if (n) {
                var t_19 = n.value;
                if (y(e, t_19)) {
                    if (m(e, n), !e[a])
                        return;
                }
                else
                    r && (e[p] && (n.value.now = Date.now()), e[h].unshiftNode(n));
                return t_19.value;
            } }, y = function (e, t) { if (!t || !t.maxAge && !e[l])
                return !1; var r = Date.now() - t.now; return t.maxAge ? r > t.maxAge : e[l] && r > e[l]; }, b = function (e) { if (e[o] > e[i])
                for (var t_20 = e[h].tail; e[o] > e[i] && null !== t_20;) {
                    var r_14 = t_20.prev;
                    m(e, t_20), t_20 = r_14;
                } }, m = function (e, t) { if (t) {
                var r_15 = t.value;
                e[u] && e[u](r_15.key, r_15.value), e[o] -= r_15.length, e[f].delete(r_15.key), e[h].removeNode(t);
            } };
            var v = /** @class */ (function () {
                function v(e, t, r, n, i) {
                    this.key = e, this.value = t, this.length = r, this.now = n, this.maxAge = i || 0;
                }
                return v;
            }());
            var w = function (e, t, r, n) { var i = r.value; y(e, i) && (m(e, r), e[a] || (i = void 0)), i && t.call(n, i.value, i.key, e); };
            t.exports = /** @class */ (function () {
                function exports(e) {
                    if ("number" == typeof e && (e = { max: e }), e || (e = {}), e.max && ("number" != typeof e.max || e.max < 0))
                        throw new TypeError("max must be a non-negative number");
                    this[i] = e.max || 1 / 0;
                    var t = e.length || d;
                    if (this[s] = "function" != typeof t ? d : t, this[a] = e.stale || !1, e.maxAge && "number" != typeof e.maxAge)
                        throw new TypeError("maxAge must be a number");
                    this[l] = e.maxAge || 0, this[u] = e.dispose, this[c] = e.noDisposeOnSet || !1, this[p] = e.updateAgeOnGet || !1, this.reset();
                }
                Object.defineProperty(exports.prototype, "max", {
                    get: function () { return this[i]; },
                    set: function (e) { if ("number" != typeof e || e < 0)
                        throw new TypeError("max must be a non-negative number"); this[i] = e || 1 / 0, b(this); },
                    enumerable: false,
                    configurable: true
                });
                Object.defineProperty(exports.prototype, "allowStale", {
                    get: function () { return this[a]; },
                    set: function (e) { this[a] = !!e; },
                    enumerable: false,
                    configurable: true
                });
                Object.defineProperty(exports.prototype, "maxAge", {
                    get: function () { return this[l]; },
                    set: function (e) { if ("number" != typeof e)
                        throw new TypeError("maxAge must be a non-negative number"); this[l] = e, b(this); },
                    enumerable: false,
                    configurable: true
                });
                Object.defineProperty(exports.prototype, "lengthCalculator", {
                    get: function () { return this[s]; },
                    set: function (e) {
                        var _this = this;
                        "function" != typeof e && (e = d), e !== this[s] && (this[s] = e, this[o] = 0, this[h].forEach(function (e) { e.length = _this[s](e.value, e.key), _this[o] += e.length; })), b(this);
                    },
                    enumerable: false,
                    configurable: true
                });
                Object.defineProperty(exports.prototype, "length", {
                    get: function () { return this[o]; },
                    enumerable: false,
                    configurable: true
                });
                Object.defineProperty(exports.prototype, "itemCount", {
                    get: function () { return this[h].length; },
                    enumerable: false,
                    configurable: true
                });
                exports.prototype.rforEach = function (e, t) { t = t || this; for (var r_16 = this[h].tail; null !== r_16;) {
                    var n_5 = r_16.prev;
                    w(this, e, r_16, t), r_16 = n_5;
                } };
                exports.prototype.forEach = function (e, t) { t = t || this; for (var r_17 = this[h].head; null !== r_17;) {
                    var n_6 = r_17.next;
                    w(this, e, r_17, t), r_17 = n_6;
                } };
                exports.prototype.keys = function () { return this[h].toArray().map(function (e) { return e.key; }); };
                exports.prototype.values = function () { return this[h].toArray().map(function (e) { return e.value; }); };
                exports.prototype.reset = function () {
                    var _this = this;
                    this[u] && this[h] && this[h].length && this[h].forEach(function (e) { return _this[u](e.key, e.value); }), this[f] = new Map, this[h] = new n, this[o] = 0;
                };
                exports.prototype.dump = function () {
                    var _this = this;
                    return this[h].map(function (e) { return !y(_this, e) && { k: e.key, v: e.value, e: e.now + (e.maxAge || 0) }; }).toArray().filter(function (e) { return e; });
                };
                exports.prototype.dumpLru = function () { return this[h]; };
                exports.prototype.set = function (e, t, r) { if ((r = r || this[l]) && "number" != typeof r)
                    throw new TypeError("maxAge must be a number"); var n = r ? Date.now() : 0, a = this[s](t, e); if (this[f].has(e)) {
                    if (a > this[i])
                        return m(this, this[f].get(e)), !1;
                    var s_1 = this[f].get(e).value;
                    return this[u] && (this[c] || this[u](e, s_1.value)), s_1.now = n, s_1.maxAge = r, s_1.value = t, this[o] += a - s_1.length, s_1.length = a, this.get(e), b(this), !0;
                } var p = new v(e, t, a, n, r); return p.length > this[i] ? (this[u] && this[u](e, t), !1) : (this[o] += p.length, this[h].unshift(p), this[f].set(e, this[h].head), b(this), !0); };
                exports.prototype.has = function (e) { if (!this[f].has(e))
                    return !1; var t = this[f].get(e).value; return !y(this, t); };
                exports.prototype.get = function (e) { return g(this, e, !0); };
                exports.prototype.peek = function (e) { return g(this, e, !1); };
                exports.prototype.pop = function () { var e = this[h].tail; return e ? (m(this, e), e.value) : null; };
                exports.prototype.del = function (e) { m(this, this[f].get(e)); };
                exports.prototype.load = function (e) { this.reset(); var t = Date.now(); for (var r_18 = e.length - 1; r_18 >= 0; r_18--) {
                    var n_7 = e[r_18], i_1 = n_7.e || 0;
                    if (0 === i_1)
                        this.set(n_7.k, n_7.v);
                    else {
                        var e_20 = i_1 - t;
                        e_20 > 0 && this.set(n_7.k, n_7.v, e_20);
                    }
                } };
                exports.prototype.prune = function () {
                    var _this = this;
                    this[f].forEach(function (e, t) { return g(_this, t, !1); });
                };
                return exports;
            }());
        }, { yallist: 83 }], 38: [function (e, t, r) { (function (e) { (function () { var r = t.exports; r.types = { 0: "reserved", 1: "connect", 2: "connack", 3: "publish", 4: "puback", 5: "pubrec", 6: "pubrel", 7: "pubcomp", 8: "subscribe", 9: "suback", 10: "unsubscribe", 11: "unsuback", 12: "pingreq", 13: "pingresp", 14: "disconnect", 15: "auth" }, r.codes = {}; for (var e_21 in r.types) {
            var t_21 = r.types[e_21];
            r.codes[t_21] = e_21;
        } r.CMD_SHIFT = 4, r.CMD_MASK = 240, r.DUP_MASK = 8, r.QOS_MASK = 3, r.QOS_SHIFT = 1, r.RETAIN_MASK = 1, r.VARBYTEINT_MASK = 127, r.VARBYTEINT_FIN_MASK = 128, r.VARBYTEINT_MAX = 268435455, r.SESSIONPRESENT_MASK = 1, r.SESSIONPRESENT_HEADER = e.from([r.SESSIONPRESENT_MASK]), r.CONNACK_HEADER = e.from([r.codes.connack << r.CMD_SHIFT]), r.USERNAME_MASK = 128, r.PASSWORD_MASK = 64, r.WILL_RETAIN_MASK = 32, r.WILL_QOS_MASK = 24, r.WILL_QOS_SHIFT = 3, r.WILL_FLAG_MASK = 4, r.CLEAN_SESSION_MASK = 2, r.CONNECT_HEADER = e.from([r.codes.connect << r.CMD_SHIFT]), r.properties = { sessionExpiryInterval: 17, willDelayInterval: 24, receiveMaximum: 33, maximumPacketSize: 39, topicAliasMaximum: 34, requestResponseInformation: 25, requestProblemInformation: 23, userProperties: 38, authenticationMethod: 21, authenticationData: 22, payloadFormatIndicator: 1, messageExpiryInterval: 2, contentType: 3, responseTopic: 8, correlationData: 9, maximumQoS: 36, retainAvailable: 37, assignedClientIdentifier: 18, reasonString: 31, wildcardSubscriptionAvailable: 40, subscriptionIdentifiersAvailable: 41, sharedSubscriptionAvailable: 42, serverKeepAlive: 19, responseInformation: 26, serverReference: 28, topicAlias: 35, subscriptionIdentifier: 11 }, r.propertiesCodes = {}; for (var e_22 in r.properties) {
            var t_22 = r.properties[e_22];
            r.propertiesCodes[t_22] = e_22;
        } function n(t) { return [0, 1, 2].map(function (n) { return [0, 1].map(function (i) { return [0, 1].map(function (o) { var s = e.alloc(1); return s.writeUInt8(r.codes[t] << r.CMD_SHIFT | (i ? r.DUP_MASK : 0) | n << r.QOS_SHIFT | o, 0, !0), s; }); }); }); } r.propertiesTypes = { sessionExpiryInterval: "int32", willDelayInterval: "int32", receiveMaximum: "int16", maximumPacketSize: "int32", topicAliasMaximum: "int16", requestResponseInformation: "byte", requestProblemInformation: "byte", userProperties: "pair", authenticationMethod: "string", authenticationData: "binary", payloadFormatIndicator: "byte", messageExpiryInterval: "int32", contentType: "string", responseTopic: "string", correlationData: "binary", maximumQoS: "int8", retainAvailable: "byte", assignedClientIdentifier: "string", reasonString: "string", wildcardSubscriptionAvailable: "byte", subscriptionIdentifiersAvailable: "byte", sharedSubscriptionAvailable: "byte", serverKeepAlive: "int16", responseInformation: "string", serverReference: "string", topicAlias: "int16", subscriptionIdentifier: "var" }, r.PUBLISH_HEADER = n("publish"), r.SUBSCRIBE_HEADER = n("subscribe"), r.SUBSCRIBE_OPTIONS_QOS_MASK = 3, r.SUBSCRIBE_OPTIONS_NL_MASK = 1, r.SUBSCRIBE_OPTIONS_NL_SHIFT = 2, r.SUBSCRIBE_OPTIONS_RAP_MASK = 1, r.SUBSCRIBE_OPTIONS_RAP_SHIFT = 3, r.SUBSCRIBE_OPTIONS_RH_MASK = 3, r.SUBSCRIBE_OPTIONS_RH_SHIFT = 4, r.SUBSCRIBE_OPTIONS_RH = [0, 16, 32], r.SUBSCRIBE_OPTIONS_NL = 4, r.SUBSCRIBE_OPTIONS_RAP = 8, r.SUBSCRIBE_OPTIONS_QOS = [0, 1, 2], r.UNSUBSCRIBE_HEADER = n("unsubscribe"), r.ACKS = { unsuback: n("unsuback"), puback: n("puback"), pubcomp: n("pubcomp"), pubrel: n("pubrel"), pubrec: n("pubrec") }, r.SUBACK_HEADER = e.from([r.codes.suback << r.CMD_SHIFT]), r.VERSION3 = e.from([3]), r.VERSION4 = e.from([4]), r.VERSION5 = e.from([5]), r.VERSION131 = e.from([131]), r.VERSION132 = e.from([132]), r.QOS = [0, 1, 2].map(function (t) { return e.from([t]); }), r.EMPTY = { pingreq: e.from([r.codes.pingreq << 4, 0]), pingresp: e.from([r.codes.pingresp << 4, 0]), disconnect: e.from([r.codes.disconnect << 4, 0]) }; }).call(this); }).call(this, e("buffer").Buffer); }, { buffer: 17 }], 39: [function (e, t, r) { (function (r) { (function () { var n = e("./writeToStream"), i = e("events");
            var o = /** @class */ (function (_super) {
                __extends(o, _super);
                function o() {
                    var _this = this;
                    _this = _super.call(this) || this, _this._array = new Array(20), _this._i = 0;
                    return _this;
                }
                o.prototype.write = function (e) { return this._array[this._i++] = e, !0; };
                o.prototype.concat = function () { var e = 0; var t = new Array(this._array.length), n = this._array; var i, o = 0; for (i = 0; i < n.length && void 0 !== n[i]; i++)
                    "string" != typeof n[i] ? t[i] = n[i].length : t[i] = r.byteLength(n[i]), e += t[i]; var s = r.allocUnsafe(e); for (i = 0; i < n.length && void 0 !== n[i]; i++)
                    "string" != typeof n[i] ? (n[i].copy(s, o), o += t[i]) : (s.write(n[i], o), o += t[i]); return s; };
                return o;
            }(i));  t.exports = function (e, t) { var r = new o; return n(e, r, t), r.concat(); }; }).call(this); }).call(this, e("buffer").Buffer); }, { "./writeToStream": 44, buffer: 17, events: 22 }], 40: [function (e, t, r) { r.parser = e("./parser").parser, r.generate = e("./generate"), r.writeToStream = e("./writeToStream"); }, { "./generate": 39, "./parser": 43, "./writeToStream": 44 }], 41: [function (e, t, r) { (function (e) { (function () { var r = 65536, n = {}, i = e.isBuffer(e.from([1, 2]).subarray(0, 1)); function o(t) { var r = e.allocUnsafe(2); return r.writeUInt8(t >> 8, 0), r.writeUInt8(255 & t, 1), r; } t.exports = { cache: n, generateCache: function () { for (var e_23 = 0; e_23 < r; e_23++)
                n[e_23] = o(e_23); }, generateNumber: o, genBufVariableByteInt: function (t) { var r = 0, n = 0; var o = e.allocUnsafe(4); do {
                r = t % 128 | 0, (t = t / 128 | 0) > 0 && (r |= 128), o.writeUInt8(r, n++);
            } while (t > 0 && n < 4); return t > 0 && (n = 0), i ? o.subarray(0, n) : o.slice(0, n); }, generate4ByteBuffer: function (t) { var r = e.allocUnsafe(4); return r.writeUInt32BE(t, 0), r; } }; }).call(this); }).call(this, e("buffer").Buffer); }, { buffer: 17 }], 42: [function (e, t, r) { t.exports = /** @class */ (function () {
            function exports() {
                this.cmd = null, this.retain = !1, this.qos = 0, this.dup = !1, this.length = -1, this.topic = null, this.payload = null;
            }
            return exports;
        }()); }, {}], 43: [function (e, t, r) { var n = e("bl"), i = e("events"), o = e("./packet"), s = e("./constants"), a = e("debug")("mqtt-packet:parser");
            var l = /** @class */ (function (_super) {
                __extends(l, _super);
                function l() {
                    var _this = this;
                    _this = _super.call(this) || this, _this.parser = _this.constructor.parser;
                    return _this;
                }
                l.parser = function (e) { return this instanceof l ? (this.settings = e || {}, this._states = ["_parseHeader", "_parseLength", "_parsePayload", "_newPacket"], this._resetState(), this) : (new l).parser(e); };
                l.prototype._resetState = function () { a("_resetState: resetting packet, error, _list, and _stateCounter"), this.packet = new o, this.error = null, this._list = n(), this._stateCounter = 0; };
                l.prototype.parse = function (e) { for (this.error && this._resetState(), this._list.append(e), a("parse: current state: %s", this._states[this._stateCounter]); (-1 !== this.packet.length || this._list.length > 0) && this[this._states[this._stateCounter]]() && !this.error;)
                    this._stateCounter++, a("parse: state complete. _stateCounter is now: %d", this._stateCounter), a("parse: packet.length: %d, buffer list length: %d", this.packet.length, this._list.length), this._stateCounter >= this._states.length && (this._stateCounter = 0); return a("parse: exited while loop. packet: %d, buffer list length: %d", this.packet.length, this._list.length), this._list.length; };
                l.prototype._parseHeader = function () { var e = this._list.readUInt8(0); return this.packet.cmd = s.types[e >> s.CMD_SHIFT], this.packet.retain = 0 != (e & s.RETAIN_MASK), this.packet.qos = e >> s.QOS_SHIFT & s.QOS_MASK, this.packet.dup = 0 != (e & s.DUP_MASK), a("_parseHeader: packet: %o", this.packet), this._list.consume(1), !0; };
                l.prototype._parseLength = function () { var e = this._parseVarByteNum(!0); return e && (this.packet.length = e.value, this._list.consume(e.bytes)), a("_parseLength %d", e.value), !!e; };
                l.prototype._parsePayload = function () { a("_parsePayload: payload %O", this._list); var e = !1; if (0 === this.packet.length || this._list.length >= this.packet.length) {
                    switch (this._pos = 0, this.packet.cmd) {
                        case "connect":
                            this._parseConnect();
                            break;
                        case "connack":
                            this._parseConnack();
                            break;
                        case "publish":
                            this._parsePublish();
                            break;
                        case "puback":
                        case "pubrec":
                        case "pubrel":
                        case "pubcomp":
                            this._parseConfirmation();
                            break;
                        case "subscribe":
                            this._parseSubscribe();
                            break;
                        case "suback":
                            this._parseSuback();
                            break;
                        case "unsubscribe":
                            this._parseUnsubscribe();
                            break;
                        case "unsuback":
                            this._parseUnsuback();
                            break;
                        case "pingreq":
                        case "pingresp": break;
                        case "disconnect":
                            this._parseDisconnect();
                            break;
                        case "auth":
                            this._parseAuth();
                            break;
                        default: this._emitError(new Error("Not supported"));
                    }
                    e = !0;
                } return a("_parsePayload complete result: %s", e), e; };
                l.prototype._parseConnect = function () { var e, t, r, n; a("_parseConnect"); var i = {}, o = this.packet, l = this._parseString(); if (null === l)
                    return this._emitError(new Error("Cannot parse protocolId")); if ("MQTT" !== l && "MQIsdp" !== l)
                    return this._emitError(new Error("Invalid protocolId")); if (o.protocolId = l, this._pos >= this._list.length)
                    return this._emitError(new Error("Packet too short")); if (o.protocolVersion = this._list.readUInt8(this._pos), o.protocolVersion >= 128 && (o.bridgeMode = !0, o.protocolVersion = o.protocolVersion - 128), 3 !== o.protocolVersion && 4 !== o.protocolVersion && 5 !== o.protocolVersion)
                    return this._emitError(new Error("Invalid protocol version")); if (this._pos++, this._pos >= this._list.length)
                    return this._emitError(new Error("Packet too short")); if (i.username = this._list.readUInt8(this._pos) & s.USERNAME_MASK, i.password = this._list.readUInt8(this._pos) & s.PASSWORD_MASK, i.will = this._list.readUInt8(this._pos) & s.WILL_FLAG_MASK, i.will && (o.will = {}, o.will.retain = 0 != (this._list.readUInt8(this._pos) & s.WILL_RETAIN_MASK), o.will.qos = (this._list.readUInt8(this._pos) & s.WILL_QOS_MASK) >> s.WILL_QOS_SHIFT), o.clean = 0 != (this._list.readUInt8(this._pos) & s.CLEAN_SESSION_MASK), this._pos++, o.keepalive = this._parseNum(), -1 === o.keepalive)
                    return this._emitError(new Error("Packet too short")); if (5 === o.protocolVersion) {
                    var e_24 = this._parseProperties();
                    Object.getOwnPropertyNames(e_24).length && (o.properties = e_24);
                } var u = this._parseString(); if (null === u)
                    return this._emitError(new Error("Packet too short")); if (o.clientId = u, a("_parseConnect: packet.clientId: %s", o.clientId), i.will) {
                    if (5 === o.protocolVersion) {
                        var e_25 = this._parseProperties();
                        Object.getOwnPropertyNames(e_25).length && (o.will.properties = e_25);
                    }
                    if (null === (e = this._parseString()))
                        return this._emitError(new Error("Cannot parse will topic"));
                    if (o.will.topic = e, a("_parseConnect: packet.will.topic: %s", o.will.topic), null === (t = this._parseBuffer()))
                        return this._emitError(new Error("Cannot parse will payload"));
                    o.will.payload = t, a("_parseConnect: packet.will.paylaod: %s", o.will.payload);
                } if (i.username) {
                    if (null === (n = this._parseString()))
                        return this._emitError(new Error("Cannot parse username"));
                    o.username = n, a("_parseConnect: packet.username: %s", o.username);
                } if (i.password) {
                    if (null === (r = this._parseBuffer()))
                        return this._emitError(new Error("Cannot parse password"));
                    o.password = r;
                } return this.settings = o, a("_parseConnect: complete"), o; };
                l.prototype._parseConnack = function () { a("_parseConnack"); var e = this.packet; if (this._list.length < 1)
                    return null; if (e.sessionPresent = !!(this._list.readUInt8(this._pos++) & s.SESSIONPRESENT_MASK), 5 === this.settings.protocolVersion)
                    this._list.length >= 2 ? e.reasonCode = this._list.readUInt8(this._pos++) : e.reasonCode = 0;
                else {
                    if (this._list.length < 2)
                        return null;
                    e.returnCode = this._list.readUInt8(this._pos++);
                } if (-1 === e.returnCode || -1 === e.reasonCode)
                    return this._emitError(new Error("Cannot parse return code")); if (5 === this.settings.protocolVersion) {
                    var t_23 = this._parseProperties();
                    Object.getOwnPropertyNames(t_23).length && (e.properties = t_23);
                } a("_parseConnack: complete"); };
                l.prototype._parsePublish = function () { a("_parsePublish"); var e = this.packet; if (e.topic = this._parseString(), null === e.topic)
                    return this._emitError(new Error("Cannot parse topic")); if (!(e.qos > 0) || this._parseMessageId()) {
                    if (5 === this.settings.protocolVersion) {
                        var t_24 = this._parseProperties();
                        Object.getOwnPropertyNames(t_24).length && (e.properties = t_24);
                    }
                    e.payload = this._list.slice(this._pos, e.length), a("_parsePublish: payload from buffer list: %o", e.payload);
                } };
                l.prototype._parseSubscribe = function () { a("_parseSubscribe"); var e = this.packet; var t, r, n, i, o, l, u; if (1 !== e.qos)
                    return this._emitError(new Error("Wrong subscribe header")); if (e.subscriptions = [], this._parseMessageId()) {
                    if (5 === this.settings.protocolVersion) {
                        var t_25 = this._parseProperties();
                        Object.getOwnPropertyNames(t_25).length && (e.properties = t_25);
                    }
                    for (; this._pos < e.length;) {
                        if (null === (t = this._parseString()))
                            return this._emitError(new Error("Cannot parse topic"));
                        if (this._pos >= e.length)
                            return this._emitError(new Error("Malformed Subscribe Payload"));
                        n = (r = this._parseByte()) & s.SUBSCRIBE_OPTIONS_QOS_MASK, l = 0 != (r >> s.SUBSCRIBE_OPTIONS_NL_SHIFT & s.SUBSCRIBE_OPTIONS_NL_MASK), o = 0 != (r >> s.SUBSCRIBE_OPTIONS_RAP_SHIFT & s.SUBSCRIBE_OPTIONS_RAP_MASK), i = r >> s.SUBSCRIBE_OPTIONS_RH_SHIFT & s.SUBSCRIBE_OPTIONS_RH_MASK, u = { topic: t, qos: n }, 5 === this.settings.protocolVersion ? (u.nl = l, u.rap = o, u.rh = i) : this.settings.bridgeMode && (u.rh = 0, u.rap = !0, u.nl = !0), a("_parseSubscribe: push subscription `%s` to subscription", u), e.subscriptions.push(u);
                    }
                } };
                l.prototype._parseSuback = function () { a("_parseSuback"); var e = this.packet; if (this.packet.granted = [], this._parseMessageId()) {
                    if (5 === this.settings.protocolVersion) {
                        var t_26 = this._parseProperties();
                        Object.getOwnPropertyNames(t_26).length && (e.properties = t_26);
                    }
                    for (; this._pos < this.packet.length;)
                        this.packet.granted.push(this._list.readUInt8(this._pos++));
                } };
                l.prototype._parseUnsubscribe = function () { a("_parseUnsubscribe"); var e = this.packet; if (e.unsubscriptions = [], this._parseMessageId()) {
                    if (5 === this.settings.protocolVersion) {
                        var t_27 = this._parseProperties();
                        Object.getOwnPropertyNames(t_27).length && (e.properties = t_27);
                    }
                    for (; this._pos < e.length;) {
                        var t_28 = this._parseString();
                        if (null === t_28)
                            return this._emitError(new Error("Cannot parse topic"));
                        a("_parseUnsubscribe: push topic `%s` to unsubscriptions", t_28), e.unsubscriptions.push(t_28);
                    }
                } };
                l.prototype._parseUnsuback = function () { a("_parseUnsuback"); var e = this.packet; if (!this._parseMessageId())
                    return this._emitError(new Error("Cannot parse messageId")); if (5 === this.settings.protocolVersion) {
                    var t_29 = this._parseProperties();
                    for (Object.getOwnPropertyNames(t_29).length && (e.properties = t_29), e.granted = []; this._pos < this.packet.length;)
                        this.packet.granted.push(this._list.readUInt8(this._pos++));
                } };
                l.prototype._parseConfirmation = function () { a("_parseConfirmation: packet.cmd: `%s`", this.packet.cmd); var e = this.packet; if (this._parseMessageId(), 5 === this.settings.protocolVersion && (e.length > 2 ? (e.reasonCode = this._parseByte(), a("_parseConfirmation: packet.reasonCode `%d`", e.reasonCode)) : e.reasonCode = 0, e.length > 3)) {
                    var t_30 = this._parseProperties();
                    Object.getOwnPropertyNames(t_30).length && (e.properties = t_30);
                } return !0; };
                l.prototype._parseDisconnect = function () { var e = this.packet; if (a("_parseDisconnect"), 5 === this.settings.protocolVersion) {
                    this._list.length > 0 ? e.reasonCode = this._parseByte() : e.reasonCode = 0;
                    var t_31 = this._parseProperties();
                    Object.getOwnPropertyNames(t_31).length && (e.properties = t_31);
                } return a("_parseDisconnect result: true"), !0; };
                l.prototype._parseAuth = function () { a("_parseAuth"); var e = this.packet; if (5 !== this.settings.protocolVersion)
                    return this._emitError(new Error("Not supported auth packet for this version MQTT")); e.reasonCode = this._parseByte(); var t = this._parseProperties(); return Object.getOwnPropertyNames(t).length && (e.properties = t), a("_parseAuth: result: true"), !0; };
                l.prototype._parseMessageId = function () { var e = this.packet; return e.messageId = this._parseNum(), null === e.messageId ? (this._emitError(new Error("Cannot parse messageId")), !1) : (a("_parseMessageId: packet.messageId %d", e.messageId), !0); };
                l.prototype._parseString = function (e) { var t = this._parseNum(), r = t + this._pos; if (-1 === t || r > this._list.length || r > this.packet.length)
                    return null; var n = this._list.toString("utf8", this._pos, r); return this._pos += t, a("_parseString: result: %s", n), n; };
                l.prototype._parseStringPair = function () { return a("_parseStringPair"), { name: this._parseString(), value: this._parseString() }; };
                l.prototype._parseBuffer = function () { var e = this._parseNum(), t = e + this._pos; if (-1 === e || t > this._list.length || t > this.packet.length)
                    return null; var r = this._list.slice(this._pos, t); return this._pos += e, a("_parseBuffer: result: %o", r), r; };
                l.prototype._parseNum = function () { if (this._list.length - this._pos < 2)
                    return -1; var e = this._list.readUInt16BE(this._pos); return this._pos += 2, a("_parseNum: result: %s", e), e; };
                l.prototype._parse4ByteNum = function () { if (this._list.length - this._pos < 4)
                    return -1; var e = this._list.readUInt32BE(this._pos); return this._pos += 4, a("_parse4ByteNum: result: %s", e), e; };
                l.prototype._parseVarByteNum = function (e) { a("_parseVarByteNum"); var t, r = 0, n = 1, i = 0, o = !1; var l = this._pos ? this._pos : 0; for (; r < 4 && l + r < this._list.length;) {
                    if (i += n * ((t = this._list.readUInt8(l + r++)) & s.VARBYTEINT_MASK), n *= 128, 0 == (t & s.VARBYTEINT_FIN_MASK)) {
                        o = !0;
                        break;
                    }
                    if (this._list.length <= r)
                        break;
                } return !o && 4 === r && this._list.length >= r && this._emitError(new Error("Invalid variable byte integer")), l && (this._pos += r), a("_parseVarByteNum: result: %o", o = !!o && (e ? { bytes: r, value: i } : i)), o; };
                l.prototype._parseByte = function () { var e; return this._pos < this._list.length && (e = this._list.readUInt8(this._pos), this._pos++), a("_parseByte: result: %o", e), e; };
                l.prototype._parseByType = function (e) { switch (a("_parseByType: type: %s", e), e) {
                    case "byte": return 0 !== this._parseByte();
                    case "int8": return this._parseByte();
                    case "int16": return this._parseNum();
                    case "int32": return this._parse4ByteNum();
                    case "var": return this._parseVarByteNum();
                    case "string": return this._parseString();
                    case "pair": return this._parseStringPair();
                    case "binary": return this._parseBuffer();
                } };
                l.prototype._parseProperties = function () { a("_parseProperties"); var e = this._parseVarByteNum(), t = this._pos + e, r = {}; for (; this._pos < t;) {
                    var e_26 = this._parseByte();
                    if (!e_26)
                        return this._emitError(new Error("Cannot parse property code type")), !1;
                    var t_32 = s.propertiesCodes[e_26];
                    if (!t_32)
                        return this._emitError(new Error("Unknown property")), !1;
                    if ("userProperties" !== t_32)
                        r[t_32] ? Array.isArray(r[t_32]) ? r[t_32].push(this._parseByType(s.propertiesTypes[t_32])) : (r[t_32] = [r[t_32]], r[t_32].push(this._parseByType(s.propertiesTypes[t_32]))) : r[t_32] = this._parseByType(s.propertiesTypes[t_32]);
                    else {
                        r[t_32] || (r[t_32] = Object.create(null));
                        var e_27 = this._parseByType(s.propertiesTypes[t_32]);
                        if (r[t_32][e_27.name])
                            if (Array.isArray(r[t_32][e_27.name]))
                                r[t_32][e_27.name].push(e_27.value);
                            else {
                                var n_8 = r[t_32][e_27.name];
                                r[t_32][e_27.name] = [n_8], r[t_32][e_27.name].push(e_27.value);
                            }
                        else
                            r[t_32][e_27.name] = e_27.value;
                    }
                } return r; };
                l.prototype._newPacket = function () { return a("_newPacket"), this.packet && (this._list.consume(this.packet.length), a("_newPacket: parser emit packet: packet.cmd: %s, packet.payload: %s, packet.length: %d", this.packet.cmd, this.packet.payload, this.packet.length), this.emit("packet", this.packet)), a("_newPacket: new packet"), this.packet = new o, this._pos = 0, !0; };
                l.prototype._emitError = function (e) { a("_emitError"), this.error = e, this.emit("error", e); };
                return l;
            }(i));  t.exports = l; }, { "./constants": 38, "./packet": 42, bl: 15, debug: 18, events: 22 }], 44: [function (e, t, r) { (function (r) { (function () { var n = e("./constants"), i = r.allocUnsafe(0), o = r.from([0]), s = e("./numbers"), a = e("process-nextick-args").nextTick, l = e("debug")("mqtt-packet:writeToStream"), u = s.cache, c = s.generateNumber, h = s.generateCache, f = s.genBufVariableByteInt, p = s.generate4ByteBuffer; var d = k, g = !0; function y(e, t, s) { switch ((l("generate called"), t.cork && (t.cork(), a(b, t)), g && (g = !1, h()), l("generate: packet.cmd: %s", e.cmd), e.cmd)) {
            case "connect": return function (e, t, i) { var o = e || {}, s = o.protocolId || "MQTT"; var a = o.protocolVersion || 4; var l = o.will; var u = o.clean; var c = o.keepalive || 0, h = o.clientId || "", f = o.username, p = o.password, g = o.properties; void 0 === u && (u = !0); var y = 0; if (!s || "string" != typeof s && !r.isBuffer(s))
                return t.emit("error", new Error("Invalid protocolId")), !1; y += s.length + 2; if (3 !== a && 4 !== a && 5 !== a)
                return t.emit("error", new Error("Invalid protocol version")), !1; y += 1; if (("string" == typeof h || r.isBuffer(h)) && (h || a >= 4) && (h || u))
                y += r.byteLength(h) + 2;
            else {
                if (a < 4)
                    return t.emit("error", new Error("clientId must be supplied before 3.1.1")), !1;
                if (1 * u == 0)
                    return t.emit("error", new Error("clientId must be given if cleanSession set to 0")), !1;
            } if ("number" != typeof c || c < 0 || c > 65535 || c % 1 != 0)
                return t.emit("error", new Error("Invalid keepalive")), !1; y += 2; if (y += 1, 5 === a) {
                var b = C(t, g);
                if (!b)
                    return !1;
                y += b.length;
            } if (l) {
                if ("object" != typeof l)
                    return t.emit("error", new Error("Invalid will")), !1;
                if (!l.topic || "string" != typeof l.topic)
                    return t.emit("error", new Error("Invalid will topic")), !1;
                if (y += r.byteLength(l.topic) + 2, y += 2, l.payload) {
                    if (!(l.payload.length >= 0))
                        return t.emit("error", new Error("Invalid will payload")), !1;
                    "string" == typeof l.payload ? y += r.byteLength(l.payload) : y += l.payload.length;
                }
                var m = {};
                if (5 === a) {
                    if (!(m = C(t, l.properties)))
                        return !1;
                    y += m.length;
                }
            } var _ = !1; if (null != f) {
                if (!P(f))
                    return t.emit("error", new Error("Invalid username")), !1;
                _ = !0, y += r.byteLength(f) + 2;
            } if (null != p) {
                if (!_)
                    return t.emit("error", new Error("Username is required to use password")), !1;
                if (!P(p))
                    return t.emit("error", new Error("Invalid password")), !1;
                y += I(p) + 2;
            } t.write(n.CONNECT_HEADER), v(t, y), E(t, s), o.bridgeMode && (a += 128); t.write(131 === a ? n.VERSION131 : 132 === a ? n.VERSION132 : 4 === a ? n.VERSION4 : 5 === a ? n.VERSION5 : n.VERSION3); var k = 0; k |= null != f ? n.USERNAME_MASK : 0, k |= null != p ? n.PASSWORD_MASK : 0, k |= l && l.retain ? n.WILL_RETAIN_MASK : 0, k |= l && l.qos ? l.qos << n.WILL_QOS_SHIFT : 0, k |= l ? n.WILL_FLAG_MASK : 0, k |= u ? n.CLEAN_SESSION_MASK : 0, t.write(r.from([k])), d(t, c), 5 === a && b.write(); E(t, h), l && (5 === a && m.write(), w(t, l.topic), E(t, l.payload)); null != f && E(t, f); null != p && E(t, p); return !0; }(e, t);
            case "connack": return function (e, t, i) { var s = i ? i.protocolVersion : 4, a = e || {}, l = 5 === s ? a.reasonCode : a.returnCode, u = a.properties; var c = 2; if ("number" != typeof l)
                return t.emit("error", new Error("Invalid return code")), !1; var h = null; if (5 === s) {
                if (!(h = C(t, u)))
                    return !1;
                c += h.length;
            } t.write(n.CONNACK_HEADER), v(t, c), t.write(a.sessionPresent ? n.SESSIONPRESENT_HEADER : o), t.write(r.from([l])), null != h && h.write(); return !0; }(e, t, s);
            case "publish": return function (e, t, o) { l("publish: packet: %o", e); var s = o ? o.protocolVersion : 4, a = e || {}, u = a.qos || 0, c = a.retain ? n.RETAIN_MASK : 0, h = a.topic, f = a.payload || i, p = a.messageId, g = a.properties; var y = 0; if ("string" == typeof h)
                y += r.byteLength(h) + 2;
            else {
                if (!r.isBuffer(h))
                    return t.emit("error", new Error("Invalid topic")), !1;
                y += h.length + 2;
            } r.isBuffer(f) ? y += f.length : y += r.byteLength(f); if (u && "number" != typeof p)
                return t.emit("error", new Error("Invalid messageId")), !1; u && (y += 2); var b = null; if (5 === s) {
                if (!(b = C(t, g)))
                    return !1;
                y += b.length;
            } t.write(n.PUBLISH_HEADER[u][a.dup ? 1 : 0][c ? 1 : 0]), v(t, y), d(t, I(h)), t.write(h), u > 0 && d(t, p); null != b && b.write(); return l("publish: payload: %o", f), t.write(f); }(e, t, s);
            case "puback":
            case "pubrec":
            case "pubrel":
            case "pubcomp": return function (e, t, i) { var o = i ? i.protocolVersion : 4, s = e || {}, a = s.cmd || "puback", l = s.messageId, u = s.dup && "pubrel" === a ? n.DUP_MASK : 0; var c = 0; var h = s.reasonCode, f = s.properties; var p = 5 === o ? 3 : 2; "pubrel" === a && (c = 1); if ("number" != typeof l)
                return t.emit("error", new Error("Invalid messageId")), !1; var g = null; if (5 === o && "object" == typeof f) {
                if (!(g = T(t, f, i, p)))
                    return !1;
                p += g.length;
            } t.write(n.ACKS[a][c][u][0]), v(t, p), d(t, l), 5 === o && t.write(r.from([h])); null !== g && g.write(); return !0; }(e, t, s);
            case "subscribe": return function (e, t, i) { l("subscribe: packet: "); var o = i ? i.protocolVersion : 4, s = e || {}, a = s.dup ? n.DUP_MASK : 0, u = s.messageId, c = s.subscriptions, h = s.properties; var f = 0; if ("number" != typeof u)
                return t.emit("error", new Error("Invalid messageId")), !1; f += 2; var p = null; if (5 === o) {
                if (!(p = C(t, h)))
                    return !1;
                f += p.length;
            } if ("object" != typeof c || !c.length)
                return t.emit("error", new Error("Invalid subscriptions")), !1; for (var e_28 = 0; e_28 < c.length; e_28 += 1) {
                var n_9 = c[e_28].topic, i_2 = c[e_28].qos;
                if ("string" != typeof n_9)
                    return t.emit("error", new Error("Invalid subscriptions - invalid topic")), !1;
                if ("number" != typeof i_2)
                    return t.emit("error", new Error("Invalid subscriptions - invalid qos")), !1;
                if (5 === o) {
                    var r_19 = c[e_28].nl || !1;
                    if ("boolean" != typeof r_19)
                        return t.emit("error", new Error("Invalid subscriptions - invalid No Local")), !1;
                    var n_10 = c[e_28].rap || !1;
                    if ("boolean" != typeof n_10)
                        return t.emit("error", new Error("Invalid subscriptions - invalid Retain as Published")), !1;
                    var i_3 = c[e_28].rh || 0;
                    if ("number" != typeof i_3 || i_3 > 2)
                        return t.emit("error", new Error("Invalid subscriptions - invalid Retain Handling")), !1;
                }
                f += r.byteLength(n_9) + 2 + 1;
            } l("subscribe: writing to stream: %o", n.SUBSCRIBE_HEADER), t.write(n.SUBSCRIBE_HEADER[1][a ? 1 : 0][0]), v(t, f), d(t, u), null !== p && p.write(); var g = !0; for (var _a = 0, c_1 = c; _a < c_1.length; _a++) {
                var e_29 = c_1[_a];
                var i_4 = e_29.topic, s_2 = e_29.qos, a_1 = +e_29.nl, l_1 = +e_29.rap, u_1 = e_29.rh;
                var c_2 = void 0;
                w(t, i_4), c_2 = n.SUBSCRIBE_OPTIONS_QOS[s_2], 5 === o && (c_2 |= a_1 ? n.SUBSCRIBE_OPTIONS_NL : 0, c_2 |= l_1 ? n.SUBSCRIBE_OPTIONS_RAP : 0, c_2 |= u_1 ? n.SUBSCRIBE_OPTIONS_RH[u_1] : 0), g = t.write(r.from([c_2]));
            } return g; }(e, t, s);
            case "suback": return function (e, t, i) { var o = i ? i.protocolVersion : 4, s = e || {}, a = s.messageId, l = s.granted, u = s.properties; var c = 0; if ("number" != typeof a)
                return t.emit("error", new Error("Invalid messageId")), !1; c += 2; if ("object" != typeof l || !l.length)
                return t.emit("error", new Error("Invalid qos vector")), !1; for (var e_30 = 0; e_30 < l.length; e_30 += 1) {
                if ("number" != typeof l[e_30])
                    return t.emit("error", new Error("Invalid qos vector")), !1;
                c += 1;
            } var h = null; if (5 === o) {
                if (!(h = T(t, u, i, c)))
                    return !1;
                c += h.length;
            } t.write(n.SUBACK_HEADER), v(t, c), d(t, a), null !== h && h.write(); return t.write(r.from(l)); }(e, t, s);
            case "unsubscribe": return function (e, t, i) { var o = i ? i.protocolVersion : 4, s = e || {}, a = s.messageId, l = s.dup ? n.DUP_MASK : 0, u = s.unsubscriptions, c = s.properties; var h = 0; if ("number" != typeof a)
                return t.emit("error", new Error("Invalid messageId")), !1; h += 2; if ("object" != typeof u || !u.length)
                return t.emit("error", new Error("Invalid unsubscriptions")), !1; for (var e_31 = 0; e_31 < u.length; e_31 += 1) {
                if ("string" != typeof u[e_31])
                    return t.emit("error", new Error("Invalid unsubscriptions")), !1;
                h += r.byteLength(u[e_31]) + 2;
            } var f = null; if (5 === o) {
                if (!(f = C(t, c)))
                    return !1;
                h += f.length;
            } t.write(n.UNSUBSCRIBE_HEADER[1][l ? 1 : 0][0]), v(t, h), d(t, a), null !== f && f.write(); var p = !0; for (var e_32 = 0; e_32 < u.length; e_32++)
                p = w(t, u[e_32]); return p; }(e, t, s);
            case "unsuback": return function (e, t, i) { var o = i ? i.protocolVersion : 4, s = e || {}, a = s.messageId, l = s.dup ? n.DUP_MASK : 0, u = s.granted, c = s.properties, h = s.cmd; var f = 2; if ("number" != typeof a)
                return t.emit("error", new Error("Invalid messageId")), !1; if (5 === o) {
                if ("object" != typeof u || !u.length)
                    return t.emit("error", new Error("Invalid qos vector")), !1;
                for (var e_33 = 0; e_33 < u.length; e_33 += 1) {
                    if ("number" != typeof u[e_33])
                        return t.emit("error", new Error("Invalid qos vector")), !1;
                    f += 1;
                }
            } var p = null; if (5 === o) {
                if (!(p = T(t, c, i, f)))
                    return !1;
                f += p.length;
            } t.write(n.ACKS[h][0][l][0]), v(t, f), d(t, a), null !== p && p.write(); 5 === o && t.write(r.from(u)); return !0; }(e, t, s);
            case "pingreq":
            case "pingresp": return function (e, t, r) { return t.write(n.EMPTY[e.cmd]); }(e, t);
            case "disconnect": return function (e, t, i) { var o = i ? i.protocolVersion : 4, s = e || {}, a = s.reasonCode, l = s.properties; var u = 5 === o ? 1 : 0, c = null; if (5 === o) {
                if (!(c = T(t, l, i, u)))
                    return !1;
                u += c.length;
            } t.write(r.from([n.codes.disconnect << 4])), v(t, u), 5 === o && t.write(r.from([a])); null !== c && c.write(); return !0; }(e, t, s);
            case "auth": return function (e, t, i) { var o = i ? i.protocolVersion : 4, s = e || {}, a = s.reasonCode, l = s.properties; var u = 5 === o ? 1 : 0; 5 !== o && t.emit("error", new Error("Invalid mqtt version for auth packet")); var c = T(t, l, i, u); if (!c)
                return !1; u += c.length, t.write(r.from([n.codes.auth << 4])), v(t, u), t.write(r.from([a])), null !== c && c.write(); return !0; }(e, t, s);
            default: return t.emit("error", new Error("Unknown command")), !1;
        } } function b(e) { e.uncork(); } Object.defineProperty(y, "cacheNumbers", { get: function () { return d === k; }, set: function (e) { e ? (u && 0 !== Object.keys(u).length || (g = !0), d = k) : (g = !1, d = S); } }); var m = {}; function v(e, t) { if (t > n.VARBYTEINT_MAX)
            return e.emit("error", new Error("Invalid variable byte integer: ".concat(t))), !1; var r = m[t]; return r || (r = f(t), t < 16384 && (m[t] = r)), l("writeVarByteInt: writing to stream: %o", r), e.write(r); } function w(e, t) { var n = r.byteLength(t); return d(e, n), l("writeString: %s", t), e.write(t, "utf8"); } function _(e, t, r) { w(e, t), w(e, r); } function k(e, t) { return l("writeNumberCached: number: %d", t), l("writeNumberCached: %o", u[t]), e.write(u[t]); } function S(e, t) { var r = c(t); return l("writeNumberGenerated: %o", r), e.write(r); } function E(e, t) { "string" == typeof t ? w(e, t) : t ? (d(e, t.length), e.write(t)) : d(e, 0); } function C(e, t) { if ("object" != typeof t || null != t.length)
            return { length: 1, write: function () { A(e, {}, 0); } }; var i = 0; function o(t, i) { var o = 0; switch (n.propertiesTypes[t]) {
            case "byte":
                if ("boolean" != typeof i)
                    return e.emit("error", new Error("Invalid ".concat(t, ": ").concat(i))), !1;
                o += 2;
                break;
            case "int8":
                if ("number" != typeof i || i < 0 || i > 255)
                    return e.emit("error", new Error("Invalid ".concat(t, ": ").concat(i))), !1;
                o += 2;
                break;
            case "binary":
                if (i && null === i)
                    return e.emit("error", new Error("Invalid ".concat(t, ": ").concat(i))), !1;
                o += 1 + r.byteLength(i) + 2;
                break;
            case "int16":
                if ("number" != typeof i || i < 0 || i > 65535)
                    return e.emit("error", new Error("Invalid ".concat(t, ": ").concat(i))), !1;
                o += 3;
                break;
            case "int32":
                if ("number" != typeof i || i < 0 || i > 4294967295)
                    return e.emit("error", new Error("Invalid ".concat(t, ": ").concat(i))), !1;
                o += 5;
                break;
            case "var":
                if ("number" != typeof i || i < 0 || i > 268435455)
                    return e.emit("error", new Error("Invalid ".concat(t, ": ").concat(i))), !1;
                o += 1 + r.byteLength(f(i));
                break;
            case "string":
                if ("string" != typeof i)
                    return e.emit("error", new Error("Invalid ".concat(t, ": ").concat(i))), !1;
                o += 3 + r.byteLength(i.toString());
                break;
            case "pair":
                if ("object" != typeof i)
                    return e.emit("error", new Error("Invalid ".concat(t, ": ").concat(i))), !1;
                o += Object.getOwnPropertyNames(i).reduce(function (e, t) { var n = i[t]; return Array.isArray(n) ? e += n.reduce(function (e, n) { return e += 3 + r.byteLength(t.toString()) + 2 + r.byteLength(n.toString()); }, 0) : e += 3 + r.byteLength(t.toString()) + 2 + r.byteLength(i[t].toString()), e; }, 0);
                break;
            default: return e.emit("error", new Error("Invalid property ".concat(t, ": ").concat(i))), !1;
        } return o; } if (t)
            for (var e_34 in t) {
                var r_20 = 0, n_11 = 0;
                var s_3 = t[e_34];
                if (Array.isArray(s_3))
                    for (var t_33 = 0; t_33 < s_3.length; t_33++) {
                        if (!(n_11 = o(e_34, s_3[t_33])))
                            return !1;
                        r_20 += n_11;
                    }
                else {
                    if (!(n_11 = o(e_34, s_3)))
                        return !1;
                    r_20 = n_11;
                }
                if (!r_20)
                    return !1;
                i += r_20;
            } return { length: r.byteLength(f(i)) + i, write: function () { A(e, t, i); } }; } function T(e, t, r, n) { var i = ["reasonString", "userProperties"], o = r && r.properties && r.properties.maximumPacketSize ? r.properties.maximumPacketSize : 0; var s = C(e, t); if (o)
            for (; n + s.length > o;) {
                var r_21 = i.shift();
                if (!r_21 || !t[r_21])
                    return !1;
                delete t[r_21], s = C(e, t);
            } return s; } function x(e, t, i) { switch (n.propertiesTypes[t]) {
            case "byte":
                e.write(r.from([n.properties[t]])), e.write(r.from([+i]));
                break;
            case "int8":
                e.write(r.from([n.properties[t]])), e.write(r.from([i]));
                break;
            case "binary":
                e.write(r.from([n.properties[t]])), E(e, i);
                break;
            case "int16":
                e.write(r.from([n.properties[t]])), d(e, i);
                break;
            case "int32":
                e.write(r.from([n.properties[t]])), function (e, t) { var r = p(t); l("write4ByteNumber: %o", r), e.write(r); }(e, i);
                break;
            case "var":
                e.write(r.from([n.properties[t]])), v(e, i);
                break;
            case "string":
                e.write(r.from([n.properties[t]])), w(e, i);
                break;
            case "pair":
                Object.getOwnPropertyNames(i).forEach(function (o) { var s = i[o]; Array.isArray(s) ? s.forEach(function (i) { e.write(r.from([n.properties[t]])), _(e, o.toString(), i.toString()); }) : (e.write(r.from([n.properties[t]])), _(e, o.toString(), s.toString())); });
                break;
            default: return e.emit("error", new Error("Invalid property ".concat(t, " value: ").concat(i))), !1;
        } } function A(e, t, r) { v(e, r); for (var r_22 in t)
            if (Object.prototype.hasOwnProperty.call(t, r_22) && null !== t[r_22]) {
                var n_12 = t[r_22];
                if (Array.isArray(n_12))
                    for (var t_34 = 0; t_34 < n_12.length; t_34++)
                        x(e, r_22, n_12[t_34]);
                else
                    x(e, r_22, n_12);
            } } function I(e) { return e ? e instanceof r ? e.length : r.byteLength(e) : 0; } function P(e) { return "string" == typeof e || e instanceof r; } t.exports = y; }).call(this); }).call(this, e("buffer").Buffer); }, { "./constants": 38, "./numbers": 41, buffer: 17, debug: 18, "process-nextick-args": 49 }], 45: [function (e, t, r) { var n = 1e3, i = 60 * n, o = 60 * i, s = 24 * o, a = 7 * s, l = 365.25 * s; function u(e, t, r, n) { var i = t >= 1.5 * r; return Math.round(e / r) + " " + n + (i ? "s" : ""); } t.exports = function (e, t) { t = t || {}; var r = typeof e; if ("string" === r && e.length > 0)
            return function (e) { if ((e = String(e)).length > 100)
                return; var t = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e); if (!t)
                return; var r = parseFloat(t[1]); switch ((t[2] || "ms").toLowerCase()) {
                case "years":
                case "year":
                case "yrs":
                case "yr":
                case "y": return r * l;
                case "weeks":
                case "week":
                case "w": return r * a;
                case "days":
                case "day":
                case "d": return r * s;
                case "hours":
                case "hour":
                case "hrs":
                case "hr":
                case "h": return r * o;
                case "minutes":
                case "minute":
                case "mins":
                case "min":
                case "m": return r * i;
                case "seconds":
                case "second":
                case "secs":
                case "sec":
                case "s": return r * n;
                case "milliseconds":
                case "millisecond":
                case "msecs":
                case "msec":
                case "ms": return r;
                default: return;
            } }(e); if ("number" === r && isFinite(e))
            return t.long ? function (e) { var t = Math.abs(e); if (t >= s)
                return u(e, t, s, "day"); if (t >= o)
                return u(e, t, o, "hour"); if (t >= i)
                return u(e, t, i, "minute"); if (t >= n)
                return u(e, t, n, "second"); return e + " ms"; }(e) : function (e) { var t = Math.abs(e); if (t >= s)
                return Math.round(e / s) + "d"; if (t >= o)
                return Math.round(e / o) + "h"; if (t >= i)
                return Math.round(e / i) + "m"; if (t >= n)
                return Math.round(e / n) + "s"; return e + "ms"; }(e); throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(e)); }; }, {}], 46: [function (e, t, r) { var n = e("./lib/number-allocator.js"); t.exports.NumberAllocator = n; }, { "./lib/number-allocator.js": 47 }], 47: [function (e, t, r) {
            "use strict";
            var n = e("js-sdsl").Set, i = e("debug")("number-allocator:trace"), o = e("debug")("number-allocator:error");
            function s(e, t) { this.low = e, this.high = t; }
            function a(e, t) { if (!(this instanceof a))
                return new a(e, t); this.min = e, this.max = t, this.ss = new n([], function (e, t) { return e.compare(t); }), i("Create"), this.clear(); }
            s.prototype.equals = function (e) { return this.low === e.low && this.high === e.high; }, s.prototype.compare = function (e) { return this.low < e.low && this.high < e.low ? -1 : e.low < this.low && e.high < this.low ? 1 : 0; }, a.prototype.firstVacant = function () { return 0 === this.ss.size() ? null : this.ss.front().low; }, a.prototype.alloc = function () { if (0 === this.ss.size())
                return i("alloc():empty"), null; var e = this.ss.front(), t = e.low; return t + 1 <= e.high ? ++e.low : this.ss.eraseElementByPos(0), i("alloc():" + t), t; }, a.prototype.use = function (e) { var t = new s(e, e), r = this.ss.lowerBound(t); if (r) {
                if (r.equals(t))
                    return this.ss.eraseElementByValue(r), i("use():" + e), !0;
                if (r.low > e)
                    return !1;
                if (r.low === e)
                    return ++r.low, i("use():" + e), !0;
                if (r.high === e)
                    return --r.high, i("use():" + e), !0;
                var n_13 = r.low;
                return r.low = e + 1, this.ss.insert(new s(n_13, e - 1)), i("use():" + e), !0;
            } return i("use():failed"), !1; }, a.prototype.free = function (e) { if (e < this.min || e > this.max)
                return void o("free():" + e + " is out of range"); var t = new s(e, e), r = this.ss.lowerBound(t); if (r) {
                if (r.low <= e && e <= r.high)
                    return void o("free():" + e + " has already been vacant");
                if (r === this.ss.front())
                    e + 1 === r.low ? --r.low : this.ss.insert(t);
                else {
                    var n_14 = this.ss.reverseLowerBound(t);
                    n_14.high + 1 === e ? e + 1 === r.low ? (this.ss.eraseElementByValue(n_14), r.low = n_14.low) : n_14.high = e : e + 1 === r.low ? r.low = e : this.ss.insert(t);
                }
            }
            else {
                if (r === this.ss.front())
                    return void this.ss.insert(t);
                var n_15 = this.ss.reverseLowerBound(t);
                n_15.high + 1 === e ? n_15.high = e : this.ss.insert(t);
            } i("free():" + e); }, a.prototype.clear = function () { i("clear()"), this.ss.clear(), this.ss.insert(new s(this.min, this.max)); }, a.prototype.intervalCount = function () { return this.ss.size(); }, a.prototype.dump = function () { console.log("length:" + this.ss.size()); for (var _a = 0, _b = this.ss; _a < _b.length; _a++) {
                var e_35 = _b[_a];
                console.log(e_35);
            } }, t.exports = a;
        }, { debug: 18, "js-sdsl": 36 }], 48: [function (e, t, r) { var n = e("wrappy"); function i(e) { var t = function () { return t.called ? t.value : (t.called = !0, t.value = e.apply(this, arguments)); }; return t.called = !1, t; } function o(e) { var t = function () { if (t.called)
            throw new Error(t.onceError); return t.called = !0, t.value = e.apply(this, arguments); }, r = e.name || "Function wrapped with `once`"; return t.onceError = r + " shouldn't be called more than once", t.called = !1, t; } t.exports = n(i), t.exports.strict = n(o), i.proto = i(function () { Object.defineProperty(Function.prototype, "once", { value: function () { return i(this); }, configurable: !0 }), Object.defineProperty(Function.prototype, "onceStrict", { value: function () { return o(this); }, configurable: !0 }); }); }, { wrappy: 79 }], 49: [function (e, t, r) { (function (e) { (function () {
            "use strict";
            void 0 === e || !e.version || 0 === e.version.indexOf("v0.") || 0 === e.version.indexOf("v1.") && 0 !== e.version.indexOf("v1.8.") ? t.exports = { nextTick: function (t, r, n, i) { if ("function" != typeof t)
                    throw new TypeError('"callback" argument must be a function'); var o, s, a = arguments.length; switch (a) {
                    case 0:
                    case 1: return e.nextTick(t);
                    case 2: return e.nextTick(function () { t.call(null, r); });
                    case 3: return e.nextTick(function () { t.call(null, r, n); });
                    case 4: return e.nextTick(function () { t.call(null, r, n, i); });
                    default:
                        for (o = new Array(a - 1), s = 0; s < o.length;)
                            o[s++] = arguments[s];
                        return e.nextTick(function () { t.apply(null, o); });
                } } } : t.exports = e;
        }).call(this); }).call(this, e("_process")); }, { _process: 50 }], 50: [function (e, t, r) { var n, i, o = t.exports = {}; function s() { throw new Error("setTimeout has not been defined"); } function a() { throw new Error("clearTimeout has not been defined"); } function l(e) { if (n === setTimeout)
            return setTimeout(e, 0); if ((n === s || !n) && setTimeout)
            return n = setTimeout, setTimeout(e, 0); try {
            return n(e, 0);
        }
        catch (t) {
            try {
                return n.call(null, e, 0);
            }
            catch (t) {
                return n.call(this, e, 0);
            }
        } } !function () { try {
            n = "function" == typeof setTimeout ? setTimeout : s;
        }
        catch (e) {
            n = s;
        } try {
            i = "function" == typeof clearTimeout ? clearTimeout : a;
        }
        catch (e) {
            i = a;
        } }(); var u, c = [], h = !1, f = -1; function p() { h && u && (h = !1, u.length ? c = u.concat(c) : f = -1, c.length && d()); } function d() { if (!h) {
            var e = l(p);
            h = !0;
            for (var t = c.length; t;) {
                for (u = c, c = []; ++f < t;)
                    u && u[f].run();
                f = -1, t = c.length;
            }
            u = null, h = !1, function (e) { if (i === clearTimeout)
                return clearTimeout(e); if ((i === a || !i) && clearTimeout)
                return i = clearTimeout, clearTimeout(e); try {
                i(e);
            }
            catch (t) {
                try {
                    return i.call(null, e);
                }
                catch (t) {
                    return i.call(this, e);
                }
            } }(e);
        } } function g(e, t) { this.fun = e, this.array = t; } function y() { } o.nextTick = function (e) { var t = new Array(arguments.length - 1); if (arguments.length > 1)
            for (var r = 1; r < arguments.length; r++)
                t[r - 1] = arguments[r]; c.push(new g(e, t)), 1 !== c.length || h || l(d); }, g.prototype.run = function () { this.fun.apply(null, this.array); }, o.title = "browser", o.browser = !0, o.env = {}, o.argv = [], o.version = "", o.versions = {}, o.on = y, o.addListener = y, o.once = y, o.off = y, o.removeListener = y, o.removeAllListeners = y, o.emit = y, o.prependListener = y, o.prependOnceListener = y, o.listeners = function (e) { return []; }, o.binding = function (e) { throw new Error("process.binding is not supported"); }, o.cwd = function () { return "/"; }, o.chdir = function (e) { throw new Error("process.chdir is not supported"); }, o.umask = function () { return 0; }; }, {}], 51: [function (e, t, r) { (function (e) { (function () { !function (n) { var i = "object" == typeof r && r && !r.nodeType && r, o = "object" == typeof t && t && !t.nodeType && t, s = "object" == typeof e && e; s.global !== s && s.window !== s && s.self !== s || (n = s); var a, l, u = 2147483647, c = 36, h = 1, f = 26, p = 38, d = 700, g = 72, y = 128, b = "-", m = /^xn--/, v = /[^\x20-\x7E]/, w = /[\x2E\u3002\uFF0E\uFF61]/g, _ = { overflow: "Overflow: input needs wider integers to process", "not-basic": "Illegal input >= 0x80 (not a basic code point)", "invalid-input": "Invalid input" }, k = c - h, S = Math.floor, E = String.fromCharCode; function C(e) { throw new RangeError(_[e]); } function T(e, t) { for (var r = e.length, n = []; r--;)
            n[r] = t(e[r]); return n; } function x(e, t) { var r = e.split("@"), n = ""; return r.length > 1 && (n = r[0] + "@", e = r[1]), n + T((e = e.replace(w, ".")).split("."), t).join("."); } function A(e) { for (var t, r, n = [], i = 0, o = e.length; i < o;)
            (t = e.charCodeAt(i++)) >= 55296 && t <= 56319 && i < o ? 56320 == (64512 & (r = e.charCodeAt(i++))) ? n.push(((1023 & t) << 10) + (1023 & r) + 65536) : (n.push(t), i--) : n.push(t); return n; } function I(e) { return T(e, function (e) { var t = ""; return e > 65535 && (t += E((e -= 65536) >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), t += E(e); }).join(""); } function P(e, t) { return e + 22 + 75 * (e < 26) - ((0 != t) << 5); } function O(e, t, r) { var n = 0; for (e = r ? S(e / d) : e >> 1, e += S(e / t); e > k * f >> 1; n += c)
            e = S(e / k); return S(n + (k + 1) * e / (e + p)); } function B(e) { var t, r, n, i, o, s, a, l, p, d, m, v = [], w = e.length, _ = 0, k = y, E = g; for ((r = e.lastIndexOf(b)) < 0 && (r = 0), n = 0; n < r; ++n)
            e.charCodeAt(n) >= 128 && C("not-basic"), v.push(e.charCodeAt(n)); for (i = r > 0 ? r + 1 : 0; i < w;) {
            for (o = _, s = 1, a = c; i >= w && C("invalid-input"), ((l = (m = e.charCodeAt(i++)) - 48 < 10 ? m - 22 : m - 65 < 26 ? m - 65 : m - 97 < 26 ? m - 97 : c) >= c || l > S((u - _) / s)) && C("overflow"), _ += l * s, !(l < (p = a <= E ? h : a >= E + f ? f : a - E)); a += c)
                s > S(u / (d = c - p)) && C("overflow"), s *= d;
            E = O(_ - o, t = v.length + 1, 0 == o), S(_ / t) > u - k && C("overflow"), k += S(_ / t), _ %= t, v.splice(_++, 0, k);
        } return I(v); } function R(e) { var t, r, n, i, o, s, a, l, p, d, m, v, w, _, k, T = []; for (v = (e = A(e)).length, t = y, r = 0, o = g, s = 0; s < v; ++s)
            (m = e[s]) < 128 && T.push(E(m)); for (n = i = T.length, i && T.push(b); n < v;) {
            for (a = u, s = 0; s < v; ++s)
                (m = e[s]) >= t && m < a && (a = m);
            for (a - t > S((u - r) / (w = n + 1)) && C("overflow"), r += (a - t) * w, t = a, s = 0; s < v; ++s)
                if ((m = e[s]) < t && ++r > u && C("overflow"), m == t) {
                    for (l = r, p = c; !(l < (d = p <= o ? h : p >= o + f ? f : p - o)); p += c)
                        k = l - d, _ = c - d, T.push(E(P(d + k % _, 0))), l = S(k / _);
                    T.push(E(P(l, 0))), o = O(r, w, n == i), r = 0, ++n;
                }
            ++r, ++t;
        } return T.join(""); } if (a = { version: "1.4.1", ucs2: { decode: A, encode: I }, decode: B, encode: R, toASCII: function (e) { return x(e, function (e) { return v.test(e) ? "xn--" + R(e) : e; }); }, toUnicode: function (e) { return x(e, function (e) { return m.test(e) ? B(e.slice(4).toLowerCase()) : e; }); } }, i && o)
            if (t.exports == i)
                o.exports = a;
            else
                for (l in a)
                    a.hasOwnProperty(l) && (i[l] = a[l]);
        else
            n.punycode = a; }(this); }).call(this); }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}); }, {}], 52: [function (e, t, r) {
            "use strict";
            function n(e, t) { return Object.prototype.hasOwnProperty.call(e, t); }
            t.exports = function (e, t, r, o) { t = t || "&", r = r || "="; var s = {}; if ("string" != typeof e || 0 === e.length)
                return s; var a = /\+/g; e = e.split(t); var l = 1e3; o && "number" == typeof o.maxKeys && (l = o.maxKeys); var u = e.length; l > 0 && u > l && (u = l); for (var c = 0; c < u; ++c) {
                var h, f, p, d, g = e[c].replace(a, "%20"), y = g.indexOf(r);
                y >= 0 ? (h = g.substr(0, y), f = g.substr(y + 1)) : (h = g, f = ""), p = decodeURIComponent(h), d = decodeURIComponent(f), n(s, p) ? i(s[p]) ? s[p].push(d) : s[p] = [s[p], d] : s[p] = d;
            } return s; };
            var i = Array.isArray || function (e) { return "[object Array]" === Object.prototype.toString.call(e); };
        }, {}], 53: [function (e, t, r) {
            "use strict";
            var n = function (e) { switch (typeof e) {
                case "string": return e;
                case "boolean": return e ? "true" : "false";
                case "number": return isFinite(e) ? e : "";
                default: return "";
            } };
            t.exports = function (e, t, r, a) { return t = t || "&", r = r || "=", null === e && (e = void 0), "object" == typeof e ? o(s(e), function (s) { var a = encodeURIComponent(n(s)) + r; return i(e[s]) ? o(e[s], function (e) { return a + encodeURIComponent(n(e)); }).join(t) : a + encodeURIComponent(n(e[s])); }).join(t) : a ? encodeURIComponent(n(a)) + r + encodeURIComponent(n(e)) : ""; };
            var i = Array.isArray || function (e) { return "[object Array]" === Object.prototype.toString.call(e); };
            function o(e, t) { if (e.map)
                return e.map(t); for (var r = [], n = 0; n < e.length; n++)
                r.push(t(e[n], n)); return r; }
            var s = Object.keys || function (e) { var t = []; for (var r in e)
                Object.prototype.hasOwnProperty.call(e, r) && t.push(r); return t; };
        }, {}], 54: [function (e, t, r) {
            "use strict";
            r.decode = r.parse = e("./decode"), r.encode = r.stringify = e("./encode");
        }, { "./decode": 52, "./encode": 53 }], 55: [function (e, t, r) {
            "use strict";
            var n = {};
            function i(e, t, r) { r || (r = Error); var i = function (e) { var r, n; function i(r, n, i) { return e.call(this, function (e, r, n) { return "string" == typeof t ? t : t(e, r, n); }(r, n, i)) || this; } return n = e, (r = i).prototype = Object.create(n.prototype), r.prototype.constructor = r, r.__proto__ = n, i; }(r); i.prototype.name = r.name, i.prototype.code = e, n[e] = i; }
            function o(e, t) { if (Array.isArray(e)) {
                var r = e.length;
                return e = e.map(function (e) { return String(e); }), r > 2 ? "one of ".concat(t, " ").concat(e.slice(0, r - 1).join(", "), ", or ") + e[r - 1] : 2 === r ? "one of ".concat(t, " ").concat(e[0], " or ").concat(e[1]) : "of ".concat(t, " ").concat(e[0]);
            } return "of ".concat(t, " ").concat(String(e)); }
            i("ERR_INVALID_OPT_VALUE", function (e, t) { return 'The value "' + t + '" is invalid for option "' + e + '"'; }, TypeError), i("ERR_INVALID_ARG_TYPE", function (e, t, r) { var n, i, s, a; if ("string" == typeof t && (i = "not ", t.substr(!s || s < 0 ? 0 : +s, i.length) === i) ? (n = "must not be", t = t.replace(/^not /, "")) : n = "must be", function (e, t, r) { return (void 0 === r || r > e.length) && (r = e.length), e.substring(r - t.length, r) === t; }(e, " argument"))
                a = "The ".concat(e, " ").concat(n, " ").concat(o(t, "type"));
            else {
                var l = function (e, t, r) { return "number" != typeof r && (r = 0), !(r + t.length > e.length) && -1 !== e.indexOf(t, r); }(e, ".") ? "property" : "argument";
                a = 'The "'.concat(e, '" ').concat(l, " ").concat(n, " ").concat(o(t, "type"));
            } return a += ". Received type ".concat(typeof r); }, TypeError), i("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF"), i("ERR_METHOD_NOT_IMPLEMENTED", function (e) { return "The " + e + " method is not implemented"; }), i("ERR_STREAM_PREMATURE_CLOSE", "Premature close"), i("ERR_STREAM_DESTROYED", function (e) { return "Cannot call " + e + " after a stream was destroyed"; }), i("ERR_MULTIPLE_CALLBACK", "Callback called multiple times"), i("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable"), i("ERR_STREAM_WRITE_AFTER_END", "write after end"), i("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError), i("ERR_UNKNOWN_ENCODING", function (e) { return "Unknown encoding: " + e; }, TypeError), i("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event"), t.exports.codes = n;
        }, {}], 56: [function (e, t, r) { (function (r) { (function () {
            "use strict";
            var n = Object.keys || function (e) { var t = []; for (var r in e)
                t.push(r); return t; };
            t.exports = u;
            var i = e("./_stream_readable"), o = e("./_stream_writable");
            e("inherits")(u, i);
            for (var s = n(o.prototype), a = 0; a < s.length; a++) {
                var l = s[a];
                u.prototype[l] || (u.prototype[l] = o.prototype[l]);
            }
            function u(e) { if (!(this instanceof u))
                return new u(e); i.call(this, e), o.call(this, e), this.allowHalfOpen = !0, e && (!1 === e.readable && (this.readable = !1), !1 === e.writable && (this.writable = !1), !1 === e.allowHalfOpen && (this.allowHalfOpen = !1, this.once("end", c))); }
            function c() { this._writableState.ended || r.nextTick(h, this); }
            function h(e) { e.end(); }
            Object.defineProperty(u.prototype, "writableHighWaterMark", { enumerable: !1, get: function () { return this._writableState.highWaterMark; } }), Object.defineProperty(u.prototype, "writableBuffer", { enumerable: !1, get: function () { return this._writableState && this._writableState.getBuffer(); } }), Object.defineProperty(u.prototype, "writableLength", { enumerable: !1, get: function () { return this._writableState.length; } }), Object.defineProperty(u.prototype, "destroyed", { enumerable: !1, get: function () { return void 0 !== this._readableState && void 0 !== this._writableState && (this._readableState.destroyed && this._writableState.destroyed); }, set: function (e) { void 0 !== this._readableState && void 0 !== this._writableState && (this._readableState.destroyed = e, this._writableState.destroyed = e); } });
        }).call(this); }).call(this, e("_process")); }, { "./_stream_readable": 58, "./_stream_writable": 60, _process: 50, inherits: 24 }], 57: [function (e, t, r) {
            "use strict";
            t.exports = i;
            var n = e("./_stream_transform");
            function i(e) { if (!(this instanceof i))
                return new i(e); n.call(this, e); }
            e("inherits")(i, n), i.prototype._transform = function (e, t, r) { r(null, e); };
        }, { "./_stream_transform": 59, inherits: 24 }], 58: [function (e, t, r) { (function (r, n) { (function () {
            "use strict";
            var i;
            t.exports = C, C.ReadableState = E;
            e("events").EventEmitter;
            var o = function (e, t) { return e.listeners(t).length; }, s = e("./internal/streams/stream"), a = e("buffer").Buffer, l = n.Uint8Array || function () { };
            var u, c = e("util");
            u = c && c.debuglog ? c.debuglog("stream") : function () { };
            var h, f, p, d = e("./internal/streams/buffer_list"), g = e("./internal/streams/destroy"), y = e("./internal/streams/state").getHighWaterMark, b = e("../errors").codes, m = b.ERR_INVALID_ARG_TYPE, v = b.ERR_STREAM_PUSH_AFTER_EOF, w = b.ERR_METHOD_NOT_IMPLEMENTED, _ = b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;
            e("inherits")(C, s);
            var k = g.errorOrDestroy, S = ["error", "close", "destroy", "pause", "resume"];
            function E(t, r, n) { i = i || e("./_stream_duplex"), t = t || {}, "boolean" != typeof n && (n = r instanceof i), this.objectMode = !!t.objectMode, n && (this.objectMode = this.objectMode || !!t.readableObjectMode), this.highWaterMark = y(this, t, "readableHighWaterMark", n), this.buffer = new d, this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = !1, this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.paused = !0, this.emitClose = !1 !== t.emitClose, this.autoDestroy = !!t.autoDestroy, this.destroyed = !1, this.defaultEncoding = t.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = !1, this.decoder = null, this.encoding = null, t.encoding && (h || (h = e("string_decoder/").StringDecoder), this.decoder = new h(t.encoding), this.encoding = t.encoding); }
            function C(t) { if (i = i || e("./_stream_duplex"), !(this instanceof C))
                return new C(t); var r = this instanceof i; this._readableState = new E(t, this, r), this.readable = !0, t && ("function" == typeof t.read && (this._read = t.read), "function" == typeof t.destroy && (this._destroy = t.destroy)), s.call(this); }
            function T(e, t, r, n, i) { u("readableAddChunk", t); var o, s = e._readableState; if (null === t)
                s.reading = !1, function (e, t) { if (u("onEofChunk"), t.ended)
                    return; if (t.decoder) {
                    var r = t.decoder.end();
                    r && r.length && (t.buffer.push(r), t.length += t.objectMode ? 1 : r.length);
                } t.ended = !0, t.sync ? P(e) : (t.needReadable = !1, t.emittedReadable || (t.emittedReadable = !0, O(e))); }(e, s);
            else if (i || (o = function (e, t) { var r; n = t, a.isBuffer(n) || n instanceof l || "string" == typeof t || void 0 === t || e.objectMode || (r = new m("chunk", ["string", "Buffer", "Uint8Array"], t)); var n; return r; }(s, t)), o)
                k(e, o);
            else if (s.objectMode || t && t.length > 0)
                if ("string" == typeof t || s.objectMode || Object.getPrototypeOf(t) === a.prototype || (t = function (e) { return a.from(e); }(t)), n)
                    s.endEmitted ? k(e, new _) : x(e, s, t, !0);
                else if (s.ended)
                    k(e, new v);
                else {
                    if (s.destroyed)
                        return !1;
                    s.reading = !1, s.decoder && !r ? (t = s.decoder.write(t), s.objectMode || 0 !== t.length ? x(e, s, t, !1) : B(e, s)) : x(e, s, t, !1);
                }
            else
                n || (s.reading = !1, B(e, s)); return !s.ended && (s.length < s.highWaterMark || 0 === s.length); }
            function x(e, t, r, n) { t.flowing && 0 === t.length && !t.sync ? (t.awaitDrain = 0, e.emit("data", r)) : (t.length += t.objectMode ? 1 : r.length, n ? t.buffer.unshift(r) : t.buffer.push(r), t.needReadable && P(e)), B(e, t); }
            Object.defineProperty(C.prototype, "destroyed", { enumerable: !1, get: function () { return void 0 !== this._readableState && this._readableState.destroyed; }, set: function (e) { this._readableState && (this._readableState.destroyed = e); } }), C.prototype.destroy = g.destroy, C.prototype._undestroy = g.undestroy, C.prototype._destroy = function (e, t) { t(e); }, C.prototype.push = function (e, t) { var r, n = this._readableState; return n.objectMode ? r = !0 : "string" == typeof e && ((t = t || n.defaultEncoding) !== n.encoding && (e = a.from(e, t), t = ""), r = !0), T(this, e, t, !1, r); }, C.prototype.unshift = function (e) { return T(this, e, null, !0, !1); }, C.prototype.isPaused = function () { return !1 === this._readableState.flowing; }, C.prototype.setEncoding = function (t) { h || (h = e("string_decoder/").StringDecoder); var r = new h(t); this._readableState.decoder = r, this._readableState.encoding = this._readableState.decoder.encoding; for (var n = this._readableState.buffer.head, i = ""; null !== n;)
                i += r.write(n.data), n = n.next; return this._readableState.buffer.clear(), "" !== i && this._readableState.buffer.push(i), this._readableState.length = i.length, this; };
            var A = 1073741824;
            function I(e, t) { return e <= 0 || 0 === t.length && t.ended ? 0 : t.objectMode ? 1 : e != e ? t.flowing && t.length ? t.buffer.head.data.length : t.length : (e > t.highWaterMark && (t.highWaterMark = function (e) { return e >= A ? e = A : (e--, e |= e >>> 1, e |= e >>> 2, e |= e >>> 4, e |= e >>> 8, e |= e >>> 16, e++), e; }(e)), e <= t.length ? e : t.ended ? t.length : (t.needReadable = !0, 0)); }
            function P(e) { var t = e._readableState; u("emitReadable", t.needReadable, t.emittedReadable), t.needReadable = !1, t.emittedReadable || (u("emitReadable", t.flowing), t.emittedReadable = !0, r.nextTick(O, e)); }
            function O(e) { var t = e._readableState; u("emitReadable_", t.destroyed, t.length, t.ended), t.destroyed || !t.length && !t.ended || (e.emit("readable"), t.emittedReadable = !1), t.needReadable = !t.flowing && !t.ended && t.length <= t.highWaterMark, j(e); }
            function B(e, t) { t.readingMore || (t.readingMore = !0, r.nextTick(R, e, t)); }
            function R(e, t) { for (; !t.reading && !t.ended && (t.length < t.highWaterMark || t.flowing && 0 === t.length);) {
                var r = t.length;
                if (u("maybeReadMore read 0"), e.read(0), r === t.length)
                    break;
            } t.readingMore = !1; }
            function M(e) { var t = e._readableState; t.readableListening = e.listenerCount("readable") > 0, t.resumeScheduled && !t.paused ? t.flowing = !0 : e.listenerCount("data") > 0 && e.resume(); }
            function N(e) { u("readable nexttick read 0"), e.read(0); }
            function L(e, t) { u("resume", t.reading), t.reading || e.read(0), t.resumeScheduled = !1, e.emit("resume"), j(e), t.flowing && !t.reading && e.read(0); }
            function j(e) { var t = e._readableState; for (u("flow", t.flowing); t.flowing && null !== e.read();)
                ; }
            function U(e, t) { return 0 === t.length ? null : (t.objectMode ? r = t.buffer.shift() : !e || e >= t.length ? (r = t.decoder ? t.buffer.join("") : 1 === t.buffer.length ? t.buffer.first() : t.buffer.concat(t.length), t.buffer.clear()) : r = t.buffer.consume(e, t.decoder), r); var r; }
            function q(e) { var t = e._readableState; u("endReadable", t.endEmitted), t.endEmitted || (t.ended = !0, r.nextTick(D, t, e)); }
            function D(e, t) { if (u("endReadableNT", e.endEmitted, e.length), !e.endEmitted && 0 === e.length && (e.endEmitted = !0, t.readable = !1, t.emit("end"), e.autoDestroy)) {
                var r = t._writableState;
                (!r || r.autoDestroy && r.finished) && t.destroy();
            } }
            function z(e, t) { for (var r = 0, n = e.length; r < n; r++)
                if (e[r] === t)
                    return r; return -1; }
            C.prototype.read = function (e) { u("read", e), e = parseInt(e, 10); var t = this._readableState, r = e; if (0 !== e && (t.emittedReadable = !1), 0 === e && t.needReadable && ((0 !== t.highWaterMark ? t.length >= t.highWaterMark : t.length > 0) || t.ended))
                return u("read: emitReadable", t.length, t.ended), 0 === t.length && t.ended ? q(this) : P(this), null; if (0 === (e = I(e, t)) && t.ended)
                return 0 === t.length && q(this), null; var n, i = t.needReadable; return u("need readable", i), (0 === t.length || t.length - e < t.highWaterMark) && u("length less than watermark", i = !0), t.ended || t.reading ? u("reading or ended", i = !1) : i && (u("do read"), t.reading = !0, t.sync = !0, 0 === t.length && (t.needReadable = !0), this._read(t.highWaterMark), t.sync = !1, t.reading || (e = I(r, t))), null === (n = e > 0 ? U(e, t) : null) ? (t.needReadable = t.length <= t.highWaterMark, e = 0) : (t.length -= e, t.awaitDrain = 0), 0 === t.length && (t.ended || (t.needReadable = !0), r !== e && t.ended && q(this)), null !== n && this.emit("data", n), n; }, C.prototype._read = function (e) { k(this, new w("_read()")); }, C.prototype.pipe = function (e, t) { var n = this, i = this._readableState; switch (i.pipesCount) {
                case 0:
                    i.pipes = e;
                    break;
                case 1:
                    i.pipes = [i.pipes, e];
                    break;
                default: i.pipes.push(e);
            } i.pipesCount += 1, u("pipe count=%d opts=%j", i.pipesCount, t); var s = (!t || !1 !== t.end) && e !== r.stdout && e !== r.stderr ? l : y; function a(t, r) { u("onunpipe"), t === n && r && !1 === r.hasUnpiped && (r.hasUnpiped = !0, u("cleanup"), e.removeListener("close", d), e.removeListener("finish", g), e.removeListener("drain", c), e.removeListener("error", p), e.removeListener("unpipe", a), n.removeListener("end", l), n.removeListener("end", y), n.removeListener("data", f), h = !0, !i.awaitDrain || e._writableState && !e._writableState.needDrain || c()); } function l() { u("onend"), e.end(); } i.endEmitted ? r.nextTick(s) : n.once("end", s), e.on("unpipe", a); var c = function (e) { return function () { var t = e._readableState; u("pipeOnDrain", t.awaitDrain), t.awaitDrain && t.awaitDrain--, 0 === t.awaitDrain && o(e, "data") && (t.flowing = !0, j(e)); }; }(n); e.on("drain", c); var h = !1; function f(t) { u("ondata"); var r = e.write(t); u("dest.write", r), !1 === r && ((1 === i.pipesCount && i.pipes === e || i.pipesCount > 1 && -1 !== z(i.pipes, e)) && !h && (u("false write response, pause", i.awaitDrain), i.awaitDrain++), n.pause()); } function p(t) { u("onerror", t), y(), e.removeListener("error", p), 0 === o(e, "error") && k(e, t); } function d() { e.removeListener("finish", g), y(); } function g() { u("onfinish"), e.removeListener("close", d), y(); } function y() { u("unpipe"), n.unpipe(e); } return n.on("data", f), function (e, t, r) { if ("function" == typeof e.prependListener)
                return e.prependListener(t, r); e._events && e._events[t] ? Array.isArray(e._events[t]) ? e._events[t].unshift(r) : e._events[t] = [r, e._events[t]] : e.on(t, r); }(e, "error", p), e.once("close", d), e.once("finish", g), e.emit("pipe", n), i.flowing || (u("pipe resume"), n.resume()), e; }, C.prototype.unpipe = function (e) { var t = this._readableState, r = { hasUnpiped: !1 }; if (0 === t.pipesCount)
                return this; if (1 === t.pipesCount)
                return e && e !== t.pipes ? this : (e || (e = t.pipes), t.pipes = null, t.pipesCount = 0, t.flowing = !1, e && e.emit("unpipe", this, r), this); if (!e) {
                var n = t.pipes, i = t.pipesCount;
                t.pipes = null, t.pipesCount = 0, t.flowing = !1;
                for (var o = 0; o < i; o++)
                    n[o].emit("unpipe", this, { hasUnpiped: !1 });
                return this;
            } var s = z(t.pipes, e); return -1 === s ? this : (t.pipes.splice(s, 1), t.pipesCount -= 1, 1 === t.pipesCount && (t.pipes = t.pipes[0]), e.emit("unpipe", this, r), this); }, C.prototype.on = function (e, t) { var n = s.prototype.on.call(this, e, t), i = this._readableState; return "data" === e ? (i.readableListening = this.listenerCount("readable") > 0, !1 !== i.flowing && this.resume()) : "readable" === e && (i.endEmitted || i.readableListening || (i.readableListening = i.needReadable = !0, i.flowing = !1, i.emittedReadable = !1, u("on readable", i.length, i.reading), i.length ? P(this) : i.reading || r.nextTick(N, this))), n; }, C.prototype.addListener = C.prototype.on, C.prototype.removeListener = function (e, t) { var n = s.prototype.removeListener.call(this, e, t); return "readable" === e && r.nextTick(M, this), n; }, C.prototype.removeAllListeners = function (e) { var t = s.prototype.removeAllListeners.apply(this, arguments); return "readable" !== e && void 0 !== e || r.nextTick(M, this), t; }, C.prototype.resume = function () { var e = this._readableState; return e.flowing || (u("resume"), e.flowing = !e.readableListening, function (e, t) { t.resumeScheduled || (t.resumeScheduled = !0, r.nextTick(L, e, t)); }(this, e)), e.paused = !1, this; }, C.prototype.pause = function () { return u("call pause flowing=%j", this._readableState.flowing), !1 !== this._readableState.flowing && (u("pause"), this._readableState.flowing = !1, this.emit("pause")), this._readableState.paused = !0, this; }, C.prototype.wrap = function (e) { var t = this, r = this._readableState, n = !1; for (var i in e.on("end", function () { if (u("wrapped end"), r.decoder && !r.ended) {
                var e = r.decoder.end();
                e && e.length && t.push(e);
            } t.push(null); }), e.on("data", function (i) { (u("wrapped data"), r.decoder && (i = r.decoder.write(i)), !r.objectMode || null !== i && void 0 !== i) && ((r.objectMode || i && i.length) && (t.push(i) || (n = !0, e.pause()))); }), e)
                void 0 === this[i] && "function" == typeof e[i] && (this[i] = function (t) { return function () { return e[t].apply(e, arguments); }; }(i)); for (var o = 0; o < S.length; o++)
                e.on(S[o], this.emit.bind(this, S[o])); return this._read = function (t) { u("wrapped _read", t), n && (n = !1, e.resume()); }, this; }, "function" == typeof Symbol && (C.prototype[Symbol.asyncIterator] = function () { return void 0 === f && (f = e("./internal/streams/async_iterator")), f(this); }), Object.defineProperty(C.prototype, "readableHighWaterMark", { enumerable: !1, get: function () { return this._readableState.highWaterMark; } }), Object.defineProperty(C.prototype, "readableBuffer", { enumerable: !1, get: function () { return this._readableState && this._readableState.buffer; } }), Object.defineProperty(C.prototype, "readableFlowing", { enumerable: !1, get: function () { return this._readableState.flowing; }, set: function (e) { this._readableState && (this._readableState.flowing = e); } }), C._fromList = U, Object.defineProperty(C.prototype, "readableLength", { enumerable: !1, get: function () { return this._readableState.length; } }), "function" == typeof Symbol && (C.from = function (t, r) { return void 0 === p && (p = e("./internal/streams/from")), p(C, t, r); });
        }).call(this); }).call(this, e("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}); }, { "../errors": 55, "./_stream_duplex": 56, "./internal/streams/async_iterator": 61, "./internal/streams/buffer_list": 62, "./internal/streams/destroy": 63, "./internal/streams/from": 65, "./internal/streams/state": 67, "./internal/streams/stream": 68, _process: 50, buffer: 17, events: 22, inherits: 24, "string_decoder/": 75, util: 16 }], 59: [function (e, t, r) {
            "use strict";
            t.exports = u;
            var n = e("../errors").codes, i = n.ERR_METHOD_NOT_IMPLEMENTED, o = n.ERR_MULTIPLE_CALLBACK, s = n.ERR_TRANSFORM_ALREADY_TRANSFORMING, a = n.ERR_TRANSFORM_WITH_LENGTH_0, l = e("./_stream_duplex");
            function u(e) { if (!(this instanceof u))
                return new u(e); l.call(this, e), this._transformState = { afterTransform: function (e, t) { var r = this._transformState; r.transforming = !1; var n = r.writecb; if (null === n)
                    return this.emit("error", new o); r.writechunk = null, r.writecb = null, null != t && this.push(t), n(e); var i = this._readableState; i.reading = !1, (i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark); }.bind(this), needTransform: !1, transforming: !1, writecb: null, writechunk: null, writeencoding: null }, this._readableState.needReadable = !0, this._readableState.sync = !1, e && ("function" == typeof e.transform && (this._transform = e.transform), "function" == typeof e.flush && (this._flush = e.flush)), this.on("prefinish", c); }
            function c() { var e = this; "function" != typeof this._flush || this._readableState.destroyed ? h(this, null, null) : this._flush(function (t, r) { h(e, t, r); }); }
            function h(e, t, r) { if (t)
                return e.emit("error", t); if (null != r && e.push(r), e._writableState.length)
                throw new a; if (e._transformState.transforming)
                throw new s; return e.push(null); }
            e("inherits")(u, l), u.prototype.push = function (e, t) { return this._transformState.needTransform = !1, l.prototype.push.call(this, e, t); }, u.prototype._transform = function (e, t, r) { r(new i("_transform()")); }, u.prototype._write = function (e, t, r) { var n = this._transformState; if (n.writecb = r, n.writechunk = e, n.writeencoding = t, !n.transforming) {
                var i = this._readableState;
                (n.needTransform || i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark);
            } }, u.prototype._read = function (e) { var t = this._transformState; null === t.writechunk || t.transforming ? t.needTransform = !0 : (t.transforming = !0, this._transform(t.writechunk, t.writeencoding, t.afterTransform)); }, u.prototype._destroy = function (e, t) { l.prototype._destroy.call(this, e, function (e) { t(e); }); };
        }, { "../errors": 55, "./_stream_duplex": 56, inherits: 24 }], 60: [function (e, t, r) { (function (r, n) { (function () {
            "use strict";
            function i(e) { var t = this; this.next = null, this.entry = null, this.finish = function () { !function (e, t, r) { var n = e.entry; e.entry = null; for (; n;) {
                var i = n.callback;
                t.pendingcb--, i(r), n = n.next;
            } t.corkedRequestsFree.next = e; }(t, e); }; }
            var o;
            t.exports = C, C.WritableState = E;
            var s = { deprecate: e("util-deprecate") }, a = e("./internal/streams/stream"), l = e("buffer").Buffer, u = n.Uint8Array || function () { };
            var c, h = e("./internal/streams/destroy"), f = e("./internal/streams/state").getHighWaterMark, p = e("../errors").codes, d = p.ERR_INVALID_ARG_TYPE, g = p.ERR_METHOD_NOT_IMPLEMENTED, y = p.ERR_MULTIPLE_CALLBACK, b = p.ERR_STREAM_CANNOT_PIPE, m = p.ERR_STREAM_DESTROYED, v = p.ERR_STREAM_NULL_VALUES, w = p.ERR_STREAM_WRITE_AFTER_END, _ = p.ERR_UNKNOWN_ENCODING, k = h.errorOrDestroy;
            function S() { }
            function E(t, n, s) { o = o || e("./_stream_duplex"), t = t || {}, "boolean" != typeof s && (s = n instanceof o), this.objectMode = !!t.objectMode, s && (this.objectMode = this.objectMode || !!t.writableObjectMode), this.highWaterMark = f(this, t, "writableHighWaterMark", s), this.finalCalled = !1, this.needDrain = !1, this.ending = !1, this.ended = !1, this.finished = !1, this.destroyed = !1; var a = !1 === t.decodeStrings; this.decodeStrings = !a, this.defaultEncoding = t.defaultEncoding || "utf8", this.length = 0, this.writing = !1, this.corked = 0, this.sync = !0, this.bufferProcessing = !1, this.onwrite = function (e) { !function (e, t) { var n = e._writableState, i = n.sync, o = n.writecb; if ("function" != typeof o)
                throw new y; if (function (e) { e.writing = !1, e.writecb = null, e.length -= e.writelen, e.writelen = 0; }(n), t)
                !function (e, t, n, i, o) { --t.pendingcb, n ? (r.nextTick(o, i), r.nextTick(O, e, t), e._writableState.errorEmitted = !0, k(e, i)) : (o(i), e._writableState.errorEmitted = !0, k(e, i), O(e, t)); }(e, n, i, t, o);
            else {
                var s = I(n) || e.destroyed;
                s || n.corked || n.bufferProcessing || !n.bufferedRequest || A(e, n), i ? r.nextTick(x, e, n, s, o) : x(e, n, s, o);
            } }(n, e); }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = !1, this.errorEmitted = !1, this.emitClose = !1 !== t.emitClose, this.autoDestroy = !!t.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new i(this); }
            function C(t) { var r = this instanceof (o = o || e("./_stream_duplex")); if (!r && !c.call(C, this))
                return new C(t); this._writableState = new E(t, this, r), this.writable = !0, t && ("function" == typeof t.write && (this._write = t.write), "function" == typeof t.writev && (this._writev = t.writev), "function" == typeof t.destroy && (this._destroy = t.destroy), "function" == typeof t.final && (this._final = t.final)), a.call(this); }
            function T(e, t, r, n, i, o, s) { t.writelen = n, t.writecb = s, t.writing = !0, t.sync = !0, t.destroyed ? t.onwrite(new m("write")) : r ? e._writev(i, t.onwrite) : e._write(i, o, t.onwrite), t.sync = !1; }
            function x(e, t, r, n) { r || function (e, t) { 0 === t.length && t.needDrain && (t.needDrain = !1, e.emit("drain")); }(e, t), t.pendingcb--, n(), O(e, t); }
            function A(e, t) { t.bufferProcessing = !0; var r = t.bufferedRequest; if (e._writev && r && r.next) {
                var n = t.bufferedRequestCount, o = new Array(n), s = t.corkedRequestsFree;
                s.entry = r;
                for (var a = 0, l = !0; r;)
                    o[a] = r, r.isBuf || (l = !1), r = r.next, a += 1;
                o.allBuffers = l, T(e, t, !0, t.length, o, "", s.finish), t.pendingcb++, t.lastBufferedRequest = null, s.next ? (t.corkedRequestsFree = s.next, s.next = null) : t.corkedRequestsFree = new i(t), t.bufferedRequestCount = 0;
            }
            else {
                for (; r;) {
                    var u = r.chunk, c = r.encoding, h = r.callback;
                    if (T(e, t, !1, t.objectMode ? 1 : u.length, u, c, h), r = r.next, t.bufferedRequestCount--, t.writing)
                        break;
                }
                null === r && (t.lastBufferedRequest = null);
            } t.bufferedRequest = r, t.bufferProcessing = !1; }
            function I(e) { return e.ending && 0 === e.length && null === e.bufferedRequest && !e.finished && !e.writing; }
            function P(e, t) { e._final(function (r) { t.pendingcb--, r && k(e, r), t.prefinished = !0, e.emit("prefinish"), O(e, t); }); }
            function O(e, t) { var n = I(t); if (n && (function (e, t) { t.prefinished || t.finalCalled || ("function" != typeof e._final || t.destroyed ? (t.prefinished = !0, e.emit("prefinish")) : (t.pendingcb++, t.finalCalled = !0, r.nextTick(P, e, t))); }(e, t), 0 === t.pendingcb && (t.finished = !0, e.emit("finish"), t.autoDestroy))) {
                var i = e._readableState;
                (!i || i.autoDestroy && i.endEmitted) && e.destroy();
            } return n; }
            e("inherits")(C, a), E.prototype.getBuffer = function () { for (var e = this.bufferedRequest, t = []; e;)
                t.push(e), e = e.next; return t; }, function () { try {
                Object.defineProperty(E.prototype, "buffer", { get: s.deprecate(function () { return this.getBuffer(); }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003") });
            }
            catch (e) { } }(), "function" == typeof Symbol && Symbol.hasInstance && "function" == typeof Function.prototype[Symbol.hasInstance] ? (c = Function.prototype[Symbol.hasInstance], Object.defineProperty(C, Symbol.hasInstance, { value: function (e) { return !!c.call(this, e) || this === C && (e && e._writableState instanceof E); } })) : c = function (e) { return e instanceof this; }, C.prototype.pipe = function () { k(this, new b); }, C.prototype.write = function (e, t, n) { var i, o = this._writableState, s = !1, a = !o.objectMode && (i = e, l.isBuffer(i) || i instanceof u); return a && !l.isBuffer(e) && (e = function (e) { return l.from(e); }(e)), "function" == typeof t && (n = t, t = null), a ? t = "buffer" : t || (t = o.defaultEncoding), "function" != typeof n && (n = S), o.ending ? function (e, t) { var n = new w; k(e, n), r.nextTick(t, n); }(this, n) : (a || function (e, t, n, i) { var o; return null === n ? o = new v : "string" == typeof n || t.objectMode || (o = new d("chunk", ["string", "Buffer"], n)), !o || (k(e, o), r.nextTick(i, o), !1); }(this, o, e, n)) && (o.pendingcb++, s = function (e, t, r, n, i, o) { if (!r) {
                var s = function (e, t, r) { e.objectMode || !1 === e.decodeStrings || "string" != typeof t || (t = l.from(t, r)); return t; }(t, n, i);
                n !== s && (r = !0, i = "buffer", n = s);
            } var a = t.objectMode ? 1 : n.length; t.length += a; var u = t.length < t.highWaterMark; u || (t.needDrain = !0); if (t.writing || t.corked) {
                var c = t.lastBufferedRequest;
                t.lastBufferedRequest = { chunk: n, encoding: i, isBuf: r, callback: o, next: null }, c ? c.next = t.lastBufferedRequest : t.bufferedRequest = t.lastBufferedRequest, t.bufferedRequestCount += 1;
            }
            else
                T(e, t, !1, a, n, i, o); return u; }(this, o, a, e, t, n)), s; }, C.prototype.cork = function () { this._writableState.corked++; }, C.prototype.uncork = function () { var e = this._writableState; e.corked && (e.corked--, e.writing || e.corked || e.bufferProcessing || !e.bufferedRequest || A(this, e)); }, C.prototype.setDefaultEncoding = function (e) { if ("string" == typeof e && (e = e.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((e + "").toLowerCase()) > -1))
                throw new _(e); return this._writableState.defaultEncoding = e, this; }, Object.defineProperty(C.prototype, "writableBuffer", { enumerable: !1, get: function () { return this._writableState && this._writableState.getBuffer(); } }), Object.defineProperty(C.prototype, "writableHighWaterMark", { enumerable: !1, get: function () { return this._writableState.highWaterMark; } }), C.prototype._write = function (e, t, r) { r(new g("_write()")); }, C.prototype._writev = null, C.prototype.end = function (e, t, n) { var i = this._writableState; return "function" == typeof e ? (n = e, e = null, t = null) : "function" == typeof t && (n = t, t = null), null !== e && void 0 !== e && this.write(e, t), i.corked && (i.corked = 1, this.uncork()), i.ending || function (e, t, n) { t.ending = !0, O(e, t), n && (t.finished ? r.nextTick(n) : e.once("finish", n)); t.ended = !0, e.writable = !1; }(this, i, n), this; }, Object.defineProperty(C.prototype, "writableLength", { enumerable: !1, get: function () { return this._writableState.length; } }), Object.defineProperty(C.prototype, "destroyed", { enumerable: !1, get: function () { return void 0 !== this._writableState && this._writableState.destroyed; }, set: function (e) { this._writableState && (this._writableState.destroyed = e); } }), C.prototype.destroy = h.destroy, C.prototype._undestroy = h.undestroy, C.prototype._destroy = function (e, t) { t(e); };
        }).call(this); }).call(this, e("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}); }, { "../errors": 55, "./_stream_duplex": 56, "./internal/streams/destroy": 63, "./internal/streams/state": 67, "./internal/streams/stream": 68, _process: 50, buffer: 17, inherits: 24, "util-deprecate": 78 }], 61: [function (e, t, r) { (function (r) { (function () {
            "use strict";
            var n;
            function i(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e; }
            var o = e("./end-of-stream"), s = Symbol("lastResolve"), a = Symbol("lastReject"), l = Symbol("error"), u = Symbol("ended"), c = Symbol("lastPromise"), h = Symbol("handlePromise"), f = Symbol("stream");
            function p(e, t) { return { value: e, done: t }; }
            function d(e) { var t = e[s]; if (null !== t) {
                var r = e[f].read();
                null !== r && (e[c] = null, e[s] = null, e[a] = null, t(p(r, !1)));
            } }
            var g = Object.getPrototypeOf(function () { }), y = Object.setPrototypeOf((i(n = { get stream() { return this[f]; }, next: function () { var e = this, t = this[l]; if (null !== t)
                    return Promise.reject(t); if (this[u])
                    return Promise.resolve(p(void 0, !0)); if (this[f].destroyed)
                    return new Promise(function (t, n) { r.nextTick(function () { e[l] ? n(e[l]) : t(p(void 0, !0)); }); }); var n, i = this[c]; if (i)
                    n = new Promise(function (e, t) { return function (r, n) { e.then(function () { t[u] ? r(p(void 0, !0)) : t[h](r, n); }, n); }; }(i, this));
                else {
                    var o = this[f].read();
                    if (null !== o)
                        return Promise.resolve(p(o, !1));
                    n = new Promise(this[h]);
                } return this[c] = n, n; } }, Symbol.asyncIterator, function () { return this; }), i(n, "return", function () { var e = this; return new Promise(function (t, r) { e[f].destroy(null, function (e) { e ? r(e) : t(p(void 0, !0)); }); }); }), n), g);
            t.exports = function (e) { var t, n = Object.create(y, (i(t = {}, f, { value: e, writable: !0 }), i(t, s, { value: null, writable: !0 }), i(t, a, { value: null, writable: !0 }), i(t, l, { value: null, writable: !0 }), i(t, u, { value: e._readableState.endEmitted, writable: !0 }), i(t, h, { value: function (e, t) { var r = n[f].read(); r ? (n[c] = null, n[s] = null, n[a] = null, e(p(r, !1))) : (n[s] = e, n[a] = t); }, writable: !0 }), t)); return n[c] = null, o(e, function (e) { if (e && "ERR_STREAM_PREMATURE_CLOSE" !== e.code) {
                var t = n[a];
                return null !== t && (n[c] = null, n[s] = null, n[a] = null, t(e)), void (n[l] = e);
            } var r = n[s]; null !== r && (n[c] = null, n[s] = null, n[a] = null, r(p(void 0, !0))), n[u] = !0; }), e.on("readable", function (e) { r.nextTick(d, e); }.bind(null, n)), n; };
        }).call(this); }).call(this, e("_process")); }, { "./end-of-stream": 64, _process: 50 }], 62: [function (e, t, r) {
            "use strict";
            function n(e, t) { var r = Object.keys(e); if (Object.getOwnPropertySymbols) {
                var n = Object.getOwnPropertySymbols(e);
                t && (n = n.filter(function (t) { return Object.getOwnPropertyDescriptor(e, t).enumerable; })), r.push.apply(r, n);
            } return r; }
            function i(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e; }
            function o(e, t) { for (var r = 0; r < t.length; r++) {
                var n = t[r];
                n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);
            } }
            var s = e("buffer").Buffer, a = e("util").inspect, l = a && a.custom || "inspect";
            t.exports = function () { function e() { !function (e, t) { if (!(e instanceof t))
                throw new TypeError("Cannot call a class as a function"); }(this, e), this.head = null, this.tail = null, this.length = 0; } var t, r, u; return t = e, (r = [{ key: "push", value: function (e) { var t = { data: e, next: null }; this.length > 0 ? this.tail.next = t : this.head = t, this.tail = t, ++this.length; } }, { key: "unshift", value: function (e) { var t = { data: e, next: this.head }; 0 === this.length && (this.tail = t), this.head = t, ++this.length; } }, { key: "shift", value: function () { if (0 !== this.length) {
                        var e = this.head.data;
                        return 1 === this.length ? this.head = this.tail = null : this.head = this.head.next, --this.length, e;
                    } } }, { key: "clear", value: function () { this.head = this.tail = null, this.length = 0; } }, { key: "join", value: function (e) { if (0 === this.length)
                        return ""; for (var t = this.head, r = "" + t.data; t = t.next;)
                        r += e + t.data; return r; } }, { key: "concat", value: function (e) { if (0 === this.length)
                        return s.alloc(0); for (var t, r, n, i = s.allocUnsafe(e >>> 0), o = this.head, a = 0; o;)
                        t = o.data, r = i, n = a, s.prototype.copy.call(t, r, n), a += o.data.length, o = o.next; return i; } }, { key: "consume", value: function (e, t) { var r; return e < this.head.data.length ? (r = this.head.data.slice(0, e), this.head.data = this.head.data.slice(e)) : r = e === this.head.data.length ? this.shift() : t ? this._getString(e) : this._getBuffer(e), r; } }, { key: "first", value: function () { return this.head.data; } }, { key: "_getString", value: function (e) { var t = this.head, r = 1, n = t.data; for (e -= n.length; t = t.next;) {
                        var i = t.data, o = e > i.length ? i.length : e;
                        if (o === i.length ? n += i : n += i.slice(0, e), 0 === (e -= o)) {
                            o === i.length ? (++r, t.next ? this.head = t.next : this.head = this.tail = null) : (this.head = t, t.data = i.slice(o));
                            break;
                        }
                        ++r;
                    } return this.length -= r, n; } }, { key: "_getBuffer", value: function (e) { var t = s.allocUnsafe(e), r = this.head, n = 1; for (r.data.copy(t), e -= r.data.length; r = r.next;) {
                        var i = r.data, o = e > i.length ? i.length : e;
                        if (i.copy(t, t.length - e, 0, o), 0 === (e -= o)) {
                            o === i.length ? (++n, r.next ? this.head = r.next : this.head = this.tail = null) : (this.head = r, r.data = i.slice(o));
                            break;
                        }
                        ++n;
                    } return this.length -= n, t; } }, { key: l, value: function (e, t) { return a(this, function (e) { for (var t = 1; t < arguments.length; t++) {
                        var r = null != arguments[t] ? arguments[t] : {};
                        t % 2 ? n(Object(r), !0).forEach(function (t) { i(e, t, r[t]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : n(Object(r)).forEach(function (t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)); });
                    } return e; }({}, t, { depth: 0, customInspect: !1 })); } }]) && o(t.prototype, r), u && o(t, u), e; }();
        }, { buffer: 17, util: 16 }], 63: [function (e, t, r) { (function (e) { (function () {
            "use strict";
            function r(e, t) { i(e, t), n(e); }
            function n(e) { e._writableState && !e._writableState.emitClose || e._readableState && !e._readableState.emitClose || e.emit("close"); }
            function i(e, t) { e.emit("error", t); }
            t.exports = { destroy: function (t, o) { var s = this, a = this._readableState && this._readableState.destroyed, l = this._writableState && this._writableState.destroyed; return a || l ? (o ? o(t) : t && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = !0, e.nextTick(i, this, t)) : e.nextTick(i, this, t)), this) : (this._readableState && (this._readableState.destroyed = !0), this._writableState && (this._writableState.destroyed = !0), this._destroy(t || null, function (t) { !o && t ? s._writableState ? s._writableState.errorEmitted ? e.nextTick(n, s) : (s._writableState.errorEmitted = !0, e.nextTick(r, s, t)) : e.nextTick(r, s, t) : o ? (e.nextTick(n, s), o(t)) : e.nextTick(n, s); }), this); }, undestroy: function () { this._readableState && (this._readableState.destroyed = !1, this._readableState.reading = !1, this._readableState.ended = !1, this._readableState.endEmitted = !1), this._writableState && (this._writableState.destroyed = !1, this._writableState.ended = !1, this._writableState.ending = !1, this._writableState.finalCalled = !1, this._writableState.prefinished = !1, this._writableState.finished = !1, this._writableState.errorEmitted = !1); }, errorOrDestroy: function (e, t) { var r = e._readableState, n = e._writableState; r && r.autoDestroy || n && n.autoDestroy ? e.destroy(t) : e.emit("error", t); } };
        }).call(this); }).call(this, e("_process")); }, { _process: 50 }], 64: [function (e, t, r) {
            "use strict";
            var n = e("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;
            function i() { }
            t.exports = function e(t, r, o) { if ("function" == typeof r)
                return e(t, null, r); r || (r = {}), o = function (e) { var t = !1; return function () { if (!t) {
                t = !0;
                for (var r = arguments.length, n = new Array(r), i = 0; i < r; i++)
                    n[i] = arguments[i];
                e.apply(this, n);
            } }; }(o || i); var s = r.readable || !1 !== r.readable && t.readable, a = r.writable || !1 !== r.writable && t.writable, l = function () { t.writable || c(); }, u = t._writableState && t._writableState.finished, c = function () { a = !1, u = !0, s || o.call(t); }, h = t._readableState && t._readableState.endEmitted, f = function () { s = !1, h = !0, a || o.call(t); }, p = function (e) { o.call(t, e); }, d = function () { var e; return s && !h ? (t._readableState && t._readableState.ended || (e = new n), o.call(t, e)) : a && !u ? (t._writableState && t._writableState.ended || (e = new n), o.call(t, e)) : void 0; }, g = function () { t.req.on("finish", c); }; return function (e) { return e.setHeader && "function" == typeof e.abort; }(t) ? (t.on("complete", c), t.on("abort", d), t.req ? g() : t.on("request", g)) : a && !t._writableState && (t.on("end", l), t.on("close", l)), t.on("end", f), t.on("finish", c), !1 !== r.error && t.on("error", p), t.on("close", d), function () { t.removeListener("complete", c), t.removeListener("abort", d), t.removeListener("request", g), t.req && t.req.removeListener("finish", c), t.removeListener("end", l), t.removeListener("close", l), t.removeListener("finish", c), t.removeListener("end", f), t.removeListener("error", p), t.removeListener("close", d); }; };
        }, { "../../../errors": 55 }], 65: [function (e, t, r) { t.exports = function () { throw new Error("Readable.from is not available in the browser"); }; }, {}], 66: [function (e, t, r) {
            "use strict";
            var n;
            var i = e("../../../errors").codes, o = i.ERR_MISSING_ARGS, s = i.ERR_STREAM_DESTROYED;
            function a(e) { if (e)
                throw e; }
            function l(e) { e(); }
            function u(e, t) { return e.pipe(t); }
            t.exports = function () { for (var t = arguments.length, r = new Array(t), i = 0; i < t; i++)
                r[i] = arguments[i]; var c, h = function (e) { return e.length ? "function" != typeof e[e.length - 1] ? a : e.pop() : a; }(r); if (Array.isArray(r[0]) && (r = r[0]), r.length < 2)
                throw new o("streams"); var f = r.map(function (t, i) { var o = i < r.length - 1; return function (t, r, i, o) { o = function (e) { var t = !1; return function () { t || (t = !0, e.apply(void 0, arguments)); }; }(o); var a = !1; t.on("close", function () { a = !0; }), void 0 === n && (n = e("./end-of-stream")), n(t, { readable: r, writable: i }, function (e) { if (e)
                return o(e); a = !0, o(); }); var l = !1; return function (e) { if (!a && !l)
                return l = !0, function (e) { return e.setHeader && "function" == typeof e.abort; }(t) ? t.abort() : "function" == typeof t.destroy ? t.destroy() : void o(e || new s("pipe")); }; }(t, o, i > 0, function (e) { c || (c = e), e && f.forEach(l), o || (f.forEach(l), h(c)); }); }); return r.reduce(u); };
        }, { "../../../errors": 55, "./end-of-stream": 64 }], 67: [function (e, t, r) {
            "use strict";
            var n = e("../../../errors").codes.ERR_INVALID_OPT_VALUE;
            t.exports = { getHighWaterMark: function (e, t, r, i) { var o = function (e, t, r) { return null != e.highWaterMark ? e.highWaterMark : t ? e[r] : null; }(t, i, r); if (null != o) {
                    if (!isFinite(o) || Math.floor(o) !== o || o < 0)
                        throw new n(i ? r : "highWaterMark", o);
                    return Math.floor(o);
                } return e.objectMode ? 16 : 16384; } };
        }, { "../../../errors": 55 }], 68: [function (e, t, r) { t.exports = e("events").EventEmitter; }, { events: 22 }], 69: [function (e, t, r) { (r = t.exports = e("./lib/_stream_readable.js")).Stream = r, r.Readable = r, r.Writable = e("./lib/_stream_writable.js"), r.Duplex = e("./lib/_stream_duplex.js"), r.Transform = e("./lib/_stream_transform.js"), r.PassThrough = e("./lib/_stream_passthrough.js"), r.finished = e("./lib/internal/streams/end-of-stream.js"), r.pipeline = e("./lib/internal/streams/pipeline.js"); }, { "./lib/_stream_duplex.js": 56, "./lib/_stream_passthrough.js": 57, "./lib/_stream_readable.js": 58, "./lib/_stream_transform.js": 59, "./lib/_stream_writable.js": 60, "./lib/internal/streams/end-of-stream.js": 64, "./lib/internal/streams/pipeline.js": 66 }], 70: [function (e, t, r) {
            "use strict";
            t.exports = function () { if ("function" != typeof arguments[0])
                throw new Error("callback needed"); if ("number" != typeof arguments[1])
                throw new Error("interval needed"); var e; if (arguments.length > 0) {
                e = new Array(arguments.length - 2);
                for (var t = 0; t < e.length; t++)
                    e[t] = arguments[t + 2];
            } return new function (e, t, r) { var n = this; this._callback = e, this._args = r, this._interval = setInterval(e, t, this._args), this.reschedule = function (e) { e || (e = n._interval), n._interval && clearInterval(n._interval), n._interval = setInterval(n._callback, e, n._args); }, this.clear = function () { n._interval && (clearInterval(n._interval), n._interval = void 0); }, this.destroy = function () { n._interval && clearInterval(n._interval), n._callback = void 0, n._interval = void 0, n._args = void 0; }; }(arguments[0], arguments[1], e); };
        }, {}], 71: [function (e, t, r) {
            "use strict";
            t.exports = e("./index.js")();
        }, { "./index.js": 72 }], 72: [function (e, t, r) { (function (e) { (function () {
            "use strict";
            function r(t) { return t instanceof e ? e.from(t) : new t.constructor(t.buffer.slice(), t.byteOffset, t.length); }
            t.exports = function (e) { return (e = e || {}).circles ? function (e) { var t = [], n = []; return e.proto ? function e(o) { if ("object" != typeof o || null === o)
                return o; if (o instanceof Date)
                return new Date(o); if (Array.isArray(o))
                return i(o, e); if (o instanceof Map)
                return new Map(i(Array.from(o), e)); if (o instanceof Set)
                return new Set(i(Array.from(o), e)); var s = {}; for (var a in t.push(o), n.push(s), o) {
                var l = o[a];
                if ("object" != typeof l || null === l)
                    s[a] = l;
                else if (l instanceof Date)
                    s[a] = new Date(l);
                else if (l instanceof Map)
                    s[a] = new Map(i(Array.from(l), e));
                else if (l instanceof Set)
                    s[a] = new Set(i(Array.from(l), e));
                else if (ArrayBuffer.isView(l))
                    s[a] = r(l);
                else {
                    var u = t.indexOf(l);
                    s[a] = -1 !== u ? n[u] : e(l);
                }
            } return t.pop(), n.pop(), s; } : function e(o) { if ("object" != typeof o || null === o)
                return o; if (o instanceof Date)
                return new Date(o); if (Array.isArray(o))
                return i(o, e); if (o instanceof Map)
                return new Map(i(Array.from(o), e)); if (o instanceof Set)
                return new Set(i(Array.from(o), e)); var s = {}; for (var a in t.push(o), n.push(s), o)
                if (!1 !== Object.hasOwnProperty.call(o, a)) {
                    var l = o[a];
                    if ("object" != typeof l || null === l)
                        s[a] = l;
                    else if (l instanceof Date)
                        s[a] = new Date(l);
                    else if (l instanceof Map)
                        s[a] = new Map(i(Array.from(l), e));
                    else if (l instanceof Set)
                        s[a] = new Set(i(Array.from(l), e));
                    else if (ArrayBuffer.isView(l))
                        s[a] = r(l);
                    else {
                        var u = t.indexOf(l);
                        s[a] = -1 !== u ? n[u] : e(l);
                    }
                } return t.pop(), n.pop(), s; }; function i(e, i) { for (var o = Object.keys(e), s = new Array(o.length), a = 0; a < o.length; a++) {
                var l = o[a], u = e[l];
                if ("object" != typeof u || null === u)
                    s[l] = u;
                else if (u instanceof Date)
                    s[l] = new Date(u);
                else if (ArrayBuffer.isView(u))
                    s[l] = r(u);
                else {
                    var c = t.indexOf(u);
                    s[l] = -1 !== c ? n[c] : i(u);
                }
            } return s; } }(e) : e.proto ? function e(n) { if ("object" != typeof n || null === n)
                return n; if (n instanceof Date)
                return new Date(n); if (Array.isArray(n))
                return t(n, e); if (n instanceof Map)
                return new Map(t(Array.from(n), e)); if (n instanceof Set)
                return new Set(t(Array.from(n), e)); var i = {}; for (var o in n) {
                var s = n[o];
                "object" != typeof s || null === s ? i[o] = s : s instanceof Date ? i[o] = new Date(s) : s instanceof Map ? i[o] = new Map(t(Array.from(s), e)) : s instanceof Set ? i[o] = new Set(t(Array.from(s), e)) : ArrayBuffer.isView(s) ? i[o] = r(s) : i[o] = e(s);
            } return i; } : function e(n) { if ("object" != typeof n || null === n)
                return n; if (n instanceof Date)
                return new Date(n); if (Array.isArray(n))
                return t(n, e); if (n instanceof Map)
                return new Map(t(Array.from(n), e)); if (n instanceof Set)
                return new Set(t(Array.from(n), e)); var i = {}; for (var o in n)
                if (!1 !== Object.hasOwnProperty.call(n, o)) {
                    var s = n[o];
                    "object" != typeof s || null === s ? i[o] = s : s instanceof Date ? i[o] = new Date(s) : s instanceof Map ? i[o] = new Map(t(Array.from(s), e)) : s instanceof Set ? i[o] = new Set(t(Array.from(s), e)) : ArrayBuffer.isView(s) ? i[o] = r(s) : i[o] = e(s);
                } return i; }; function t(e, t) { for (var n = Object.keys(e), i = new Array(n.length), o = 0; o < n.length; o++) {
                var s = n[o], a = e[s];
                "object" != typeof a || null === a ? i[s] = a : a instanceof Date ? i[s] = new Date(a) : ArrayBuffer.isView(a) ? i[s] = r(a) : i[s] = t(a);
            } return i; } };
        }).call(this); }).call(this, e("buffer").Buffer); }, { buffer: 17 }], 73: [function (e, t, r) { var n = e("buffer"), i = n.Buffer; function o(e, t) { for (var r in e)
            t[r] = e[r]; } function s(e, t, r) { return i(e, t, r); } i.from && i.alloc && i.allocUnsafe && i.allocUnsafeSlow ? t.exports = n : (o(n, r), r.Buffer = s), s.prototype = Object.create(i.prototype), o(i, s), s.from = function (e, t, r) { if ("number" == typeof e)
            throw new TypeError("Argument must not be a number"); return i(e, t, r); }, s.alloc = function (e, t, r) { if ("number" != typeof e)
            throw new TypeError("Argument must be a number"); var n = i(e); return void 0 !== t ? "string" == typeof r ? n.fill(t, r) : n.fill(t) : n.fill(0), n; }, s.allocUnsafe = function (e) { if ("number" != typeof e)
            throw new TypeError("Argument must be a number"); return i(e); }, s.allocUnsafeSlow = function (e) { if ("number" != typeof e)
            throw new TypeError("Argument must be a number"); return n.SlowBuffer(e); }; }, { buffer: 17 }], 74: [function (e, t, r) { t.exports = function (e) { var t = e._readableState; return t ? t.objectMode || "number" == typeof e._duplexState ? e.read() : e.read((r = t, r.buffer.length ? r.buffer.head ? r.buffer.head.data.length : r.buffer[0].length : r.length)) : null; var r; }; }, {}], 75: [function (e, t, r) {
            "use strict";
            var n = e("safe-buffer").Buffer, i = n.isEncoding || function (e) { switch ((e = "" + e) && e.toLowerCase()) {
                case "hex":
                case "utf8":
                case "utf-8":
                case "ascii":
                case "binary":
                case "base64":
                case "ucs2":
                case "ucs-2":
                case "utf16le":
                case "utf-16le":
                case "raw": return !0;
                default: return !1;
            } };
            function o(e) { var t; switch (this.encoding = function (e) { var t = function (e) { if (!e)
                return "utf8"; for (var t;;)
                switch (e) {
                    case "utf8":
                    case "utf-8": return "utf8";
                    case "ucs2":
                    case "ucs-2":
                    case "utf16le":
                    case "utf-16le": return "utf16le";
                    case "latin1":
                    case "binary": return "latin1";
                    case "base64":
                    case "ascii":
                    case "hex": return e;
                    default:
                        if (t)
                            return;
                        e = ("" + e).toLowerCase(), t = !0;
                } }(e); if ("string" != typeof t && (n.isEncoding === i || !i(e)))
                throw new Error("Unknown encoding: " + e); return t || e; }(e), this.encoding) {
                case "utf16le":
                    this.text = l, this.end = u, t = 4;
                    break;
                case "utf8":
                    this.fillLast = a, t = 4;
                    break;
                case "base64":
                    this.text = c, this.end = h, t = 3;
                    break;
                default: return this.write = f, void (this.end = p);
            } this.lastNeed = 0, this.lastTotal = 0, this.lastChar = n.allocUnsafe(t); }
            function s(e) { return e <= 127 ? 0 : e >> 5 == 6 ? 2 : e >> 4 == 14 ? 3 : e >> 3 == 30 ? 4 : e >> 6 == 2 ? -1 : -2; }
            function a(e) { var t = this.lastTotal - this.lastNeed, r = function (e, t, r) { if (128 != (192 & t[0]))
                return e.lastNeed = 0, "�"; if (e.lastNeed > 1 && t.length > 1) {
                if (128 != (192 & t[1]))
                    return e.lastNeed = 1, "�";
                if (e.lastNeed > 2 && t.length > 2 && 128 != (192 & t[2]))
                    return e.lastNeed = 2, "�";
            } }(this, e); return void 0 !== r ? r : this.lastNeed <= e.length ? (e.copy(this.lastChar, t, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal)) : (e.copy(this.lastChar, t, 0, e.length), void (this.lastNeed -= e.length)); }
            function l(e, t) { if ((e.length - t) % 2 == 0) {
                var r = e.toString("utf16le", t);
                if (r) {
                    var n = r.charCodeAt(r.length - 1);
                    if (n >= 55296 && n <= 56319)
                        return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = e[e.length - 2], this.lastChar[1] = e[e.length - 1], r.slice(0, -1);
                }
                return r;
            } return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = e[e.length - 1], e.toString("utf16le", t, e.length - 1); }
            function u(e) { var t = e && e.length ? this.write(e) : ""; if (this.lastNeed) {
                var r = this.lastTotal - this.lastNeed;
                return t + this.lastChar.toString("utf16le", 0, r);
            } return t; }
            function c(e, t) { var r = (e.length - t) % 3; return 0 === r ? e.toString("base64", t) : (this.lastNeed = 3 - r, this.lastTotal = 3, 1 === r ? this.lastChar[0] = e[e.length - 1] : (this.lastChar[0] = e[e.length - 2], this.lastChar[1] = e[e.length - 1]), e.toString("base64", t, e.length - r)); }
            function h(e) { var t = e && e.length ? this.write(e) : ""; return this.lastNeed ? t + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : t; }
            function f(e) { return e.toString(this.encoding); }
            function p(e) { return e && e.length ? this.write(e) : ""; }
            r.StringDecoder = o, o.prototype.write = function (e) { if (0 === e.length)
                return ""; var t, r; if (this.lastNeed) {
                if (void 0 === (t = this.fillLast(e)))
                    return "";
                r = this.lastNeed, this.lastNeed = 0;
            }
            else
                r = 0; return r < e.length ? t ? t + this.text(e, r) : this.text(e, r) : t || ""; }, o.prototype.end = function (e) { var t = e && e.length ? this.write(e) : ""; return this.lastNeed ? t + "�" : t; }, o.prototype.text = function (e, t) { var r = function (e, t, r) { var n = t.length - 1; if (n < r)
                return 0; var i = s(t[n]); if (i >= 0)
                return i > 0 && (e.lastNeed = i - 1), i; if (--n < r || -2 === i)
                return 0; if ((i = s(t[n])) >= 0)
                return i > 0 && (e.lastNeed = i - 2), i; if (--n < r || -2 === i)
                return 0; if ((i = s(t[n])) >= 0)
                return i > 0 && (2 === i ? i = 0 : e.lastNeed = i - 3), i; return 0; }(this, e, t); if (!this.lastNeed)
                return e.toString("utf8", t); this.lastTotal = r; var n = e.length - (r - this.lastNeed); return e.copy(this.lastChar, 0, n), e.toString("utf8", t, n); }, o.prototype.fillLast = function (e) { if (this.lastNeed <= e.length)
                return e.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal); e.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, e.length), this.lastNeed -= e.length; };
        }, { "safe-buffer": 73 }], 76: [function (e, t, r) {
            "use strict";
            var n = e("punycode"), i = e("./util");
            function o() { this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.query = null, this.pathname = null, this.path = null, this.href = null; }
            r.parse = v, r.resolve = function (e, t) { return v(e, !1, !0).resolve(t); }, r.resolveObject = function (e, t) { return e ? v(e, !1, !0).resolveObject(t) : t; }, r.format = function (e) { i.isString(e) && (e = v(e)); return e instanceof o ? e.format() : o.prototype.format.call(e); }, r.Url = o;
            var s = /^([a-z0-9.+-]+:)/i, a = /:[0-9]*$/, l = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, u = ["{", "}", "|", "\\", "^", "`"].concat(["<", ">", '"', "`", " ", "\r", "\n", "\t"]), c = ["'"].concat(u), h = ["%", "/", "?", ";", "#"].concat(c), f = ["/", "?", "#"], p = /^[+a-z0-9A-Z_-]{0,63}$/, d = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, g = { javascript: !0, "javascript:": !0 }, y = { javascript: !0, "javascript:": !0 }, b = { http: !0, https: !0, ftp: !0, gopher: !0, file: !0, "http:": !0, "https:": !0, "ftp:": !0, "gopher:": !0, "file:": !0 }, m = e("querystring");
            function v(e, t, r) { if (e && i.isObject(e) && e instanceof o)
                return e; var n = new o; return n.parse(e, t, r), n; }
            o.prototype.parse = function (e, t, r) { if (!i.isString(e))
                throw new TypeError("Parameter 'url' must be a string, not " + typeof e); var o = e.indexOf("?"), a = -1 !== o && o < e.indexOf("#") ? "?" : "#", u = e.split(a); u[0] = u[0].replace(/\\/g, "/"); var v = e = u.join(a); if (v = v.trim(), !r && 1 === e.split("#").length) {
                var w = l.exec(v);
                if (w)
                    return this.path = v, this.href = v, this.pathname = w[1], w[2] ? (this.search = w[2], this.query = t ? m.parse(this.search.substr(1)) : this.search.substr(1)) : t && (this.search = "", this.query = {}), this;
            } var _ = s.exec(v); if (_) {
                var k = (_ = _[0]).toLowerCase();
                this.protocol = k, v = v.substr(_.length);
            } if (r || _ || v.match(/^\/\/[^@\/]+@[^@\/]+/)) {
                var S = "//" === v.substr(0, 2);
                !S || _ && y[_] || (v = v.substr(2), this.slashes = !0);
            } if (!y[_] && (S || _ && !b[_])) {
                for (var E, C, T = -1, x = 0; x < f.length; x++) {
                    -1 !== (A = v.indexOf(f[x])) && (-1 === T || A < T) && (T = A);
                }
                -1 !== (C = -1 === T ? v.lastIndexOf("@") : v.lastIndexOf("@", T)) && (E = v.slice(0, C), v = v.slice(C + 1), this.auth = decodeURIComponent(E)), T = -1;
                for (x = 0; x < h.length; x++) {
                    var A;
                    -1 !== (A = v.indexOf(h[x])) && (-1 === T || A < T) && (T = A);
                }
                -1 === T && (T = v.length), this.host = v.slice(0, T), v = v.slice(T), this.parseHost(), this.hostname = this.hostname || "";
                var I = "[" === this.hostname[0] && "]" === this.hostname[this.hostname.length - 1];
                if (!I)
                    for (var P = this.hostname.split(/\./), O = (x = 0, P.length); x < O; x++) {
                        var B = P[x];
                        if (B && !B.match(p)) {
                            for (var R = "", M = 0, N = B.length; M < N; M++)
                                B.charCodeAt(M) > 127 ? R += "x" : R += B[M];
                            if (!R.match(p)) {
                                var L = P.slice(0, x), j = P.slice(x + 1), U = B.match(d);
                                U && (L.push(U[1]), j.unshift(U[2])), j.length && (v = "/" + j.join(".") + v), this.hostname = L.join(".");
                                break;
                            }
                        }
                    }
                this.hostname.length > 255 ? this.hostname = "" : this.hostname = this.hostname.toLowerCase(), I || (this.hostname = n.toASCII(this.hostname));
                var q = this.port ? ":" + this.port : "", D = this.hostname || "";
                this.host = D + q, this.href += this.host, I && (this.hostname = this.hostname.substr(1, this.hostname.length - 2), "/" !== v[0] && (v = "/" + v));
            } if (!g[k])
                for (x = 0, O = c.length; x < O; x++) {
                    var z = c[x];
                    if (-1 !== v.indexOf(z)) {
                        var F = encodeURIComponent(z);
                        F === z && (F = escape(z)), v = v.split(z).join(F);
                    }
                } var V = v.indexOf("#"); -1 !== V && (this.hash = v.substr(V), v = v.slice(0, V)); var H = v.indexOf("?"); if (-1 !== H ? (this.search = v.substr(H), this.query = v.substr(H + 1), t && (this.query = m.parse(this.query)), v = v.slice(0, H)) : t && (this.search = "", this.query = {}), v && (this.pathname = v), b[k] && this.hostname && !this.pathname && (this.pathname = "/"), this.pathname || this.search) {
                q = this.pathname || "";
                var W = this.search || "";
                this.path = q + W;
            } return this.href = this.format(), this; }, o.prototype.format = function () { var e = this.auth || ""; e && (e = (e = encodeURIComponent(e)).replace(/%3A/i, ":"), e += "@"); var t = this.protocol || "", r = this.pathname || "", n = this.hash || "", o = !1, s = ""; this.host ? o = e + this.host : this.hostname && (o = e + (-1 === this.hostname.indexOf(":") ? this.hostname : "[" + this.hostname + "]"), this.port && (o += ":" + this.port)), this.query && i.isObject(this.query) && Object.keys(this.query).length && (s = m.stringify(this.query)); var a = this.search || s && "?" + s || ""; return t && ":" !== t.substr(-1) && (t += ":"), this.slashes || (!t || b[t]) && !1 !== o ? (o = "//" + (o || ""), r && "/" !== r.charAt(0) && (r = "/" + r)) : o || (o = ""), n && "#" !== n.charAt(0) && (n = "#" + n), a && "?" !== a.charAt(0) && (a = "?" + a), t + o + (r = r.replace(/[?#]/g, function (e) { return encodeURIComponent(e); })) + (a = a.replace("#", "%23")) + n; }, o.prototype.resolve = function (e) { return this.resolveObject(v(e, !1, !0)).format(); }, o.prototype.resolveObject = function (e) { if (i.isString(e)) {
                var t = new o;
                t.parse(e, !1, !0), e = t;
            } for (var r = new o, n = Object.keys(this), s = 0; s < n.length; s++) {
                var a = n[s];
                r[a] = this[a];
            } if (r.hash = e.hash, "" === e.href)
                return r.href = r.format(), r; if (e.slashes && !e.protocol) {
                for (var l = Object.keys(e), u = 0; u < l.length; u++) {
                    var c = l[u];
                    "protocol" !== c && (r[c] = e[c]);
                }
                return b[r.protocol] && r.hostname && !r.pathname && (r.path = r.pathname = "/"), r.href = r.format(), r;
            } if (e.protocol && e.protocol !== r.protocol) {
                if (!b[e.protocol]) {
                    for (var h = Object.keys(e), f = 0; f < h.length; f++) {
                        var p = h[f];
                        r[p] = e[p];
                    }
                    return r.href = r.format(), r;
                }
                if (r.protocol = e.protocol, e.host || y[e.protocol])
                    r.pathname = e.pathname;
                else {
                    for (var d = (e.pathname || "").split("/"); d.length && !(e.host = d.shift());)
                        ;
                    e.host || (e.host = ""), e.hostname || (e.hostname = ""), "" !== d[0] && d.unshift(""), d.length < 2 && d.unshift(""), r.pathname = d.join("/");
                }
                if (r.search = e.search, r.query = e.query, r.host = e.host || "", r.auth = e.auth, r.hostname = e.hostname || e.host, r.port = e.port, r.pathname || r.search) {
                    var g = r.pathname || "", m = r.search || "";
                    r.path = g + m;
                }
                return r.slashes = r.slashes || e.slashes, r.href = r.format(), r;
            } var v = r.pathname && "/" === r.pathname.charAt(0), w = e.host || e.pathname && "/" === e.pathname.charAt(0), _ = w || v || r.host && e.pathname, k = _, S = r.pathname && r.pathname.split("/") || [], E = (d = e.pathname && e.pathname.split("/") || [], r.protocol && !b[r.protocol]); if (E && (r.hostname = "", r.port = null, r.host && ("" === S[0] ? S[0] = r.host : S.unshift(r.host)), r.host = "", e.protocol && (e.hostname = null, e.port = null, e.host && ("" === d[0] ? d[0] = e.host : d.unshift(e.host)), e.host = null), _ = _ && ("" === d[0] || "" === S[0])), w)
                r.host = e.host || "" === e.host ? e.host : r.host, r.hostname = e.hostname || "" === e.hostname ? e.hostname : r.hostname, r.search = e.search, r.query = e.query, S = d;
            else if (d.length)
                S || (S = []), S.pop(), S = S.concat(d), r.search = e.search, r.query = e.query;
            else if (!i.isNullOrUndefined(e.search)) {
                if (E)
                    r.hostname = r.host = S.shift(), (I = !!(r.host && r.host.indexOf("@") > 0) && r.host.split("@")) && (r.auth = I.shift(), r.host = r.hostname = I.shift());
                return r.search = e.search, r.query = e.query, i.isNull(r.pathname) && i.isNull(r.search) || (r.path = (r.pathname ? r.pathname : "") + (r.search ? r.search : "")), r.href = r.format(), r;
            } if (!S.length)
                return r.pathname = null, r.search ? r.path = "/" + r.search : r.path = null, r.href = r.format(), r; for (var C = S.slice(-1)[0], T = (r.host || e.host || S.length > 1) && ("." === C || ".." === C) || "" === C, x = 0, A = S.length; A >= 0; A--)
                "." === (C = S[A]) ? S.splice(A, 1) : ".." === C ? (S.splice(A, 1), x++) : x && (S.splice(A, 1), x--); if (!_ && !k)
                for (; x--; x)
                    S.unshift(".."); !_ || "" === S[0] || S[0] && "/" === S[0].charAt(0) || S.unshift(""), T && "/" !== S.join("/").substr(-1) && S.push(""); var I, P = "" === S[0] || S[0] && "/" === S[0].charAt(0); E && (r.hostname = r.host = P ? "" : S.length ? S.shift() : "", (I = !!(r.host && r.host.indexOf("@") > 0) && r.host.split("@")) && (r.auth = I.shift(), r.host = r.hostname = I.shift())); return (_ = _ || r.host && S.length) && !P && S.unshift(""), S.length ? r.pathname = S.join("/") : (r.pathname = null, r.path = null), i.isNull(r.pathname) && i.isNull(r.search) || (r.path = (r.pathname ? r.pathname : "") + (r.search ? r.search : "")), r.auth = e.auth || r.auth, r.slashes = r.slashes || e.slashes, r.href = r.format(), r; }, o.prototype.parseHost = function () { var e = this.host, t = a.exec(e); t && (":" !== (t = t[0]) && (this.port = t.substr(1)), e = e.substr(0, e.length - t.length)), e && (this.hostname = e); };
        }, { "./util": 77, punycode: 51, querystring: 54 }], 77: [function (e, t, r) {
            "use strict";
            t.exports = { isString: function (e) { return "string" == typeof e; }, isObject: function (e) { return "object" == typeof e && null !== e; }, isNull: function (e) { return null === e; }, isNullOrUndefined: function (e) { return null == e; } };
        }, {}], 78: [function (e, t, r) { (function (e) { (function () { function r(t) { try {
            if (!e.localStorage)
                return !1;
        }
        catch (e) {
            return !1;
        } var r = e.localStorage[t]; return null != r && "true" === String(r).toLowerCase(); } t.exports = function (e, t) { if (r("noDeprecation"))
            return e; var n = !1; return function () { if (!n) {
            if (r("throwDeprecation"))
                throw new Error(t);
            r("traceDeprecation") ? console.trace(t) : console.warn(t), n = !0;
        } return e.apply(this, arguments); }; }; }).call(this); }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}); }, {}], 79: [function (e, t, r) { t.exports = function e(t, r) { if (t && r)
            return e(t)(r); if ("function" != typeof t)
            throw new TypeError("need wrapper function"); Object.keys(t).forEach(function (e) { n[e] = t[e]; }); return n; function n() { for (var e = new Array(arguments.length), r = 0; r < e.length; r++)
            e[r] = arguments[r]; var n = t.apply(this, e), i = e[e.length - 1]; return "function" == typeof n && n !== i && Object.keys(i).forEach(function (e) { n[e] = i[e]; }), n; } }; }, {}], 80: [function (e, t, r) {
            "use strict";
            t.exports = function () { throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object"); };
        }, {}], 81: [function (e, t, r) { t.exports = function () { for (var e = {}, t = 0; t < arguments.length; t++) {
            var r = arguments[t];
            for (var i in r)
                n.call(r, i) && (e[i] = r[i]);
        } return e; }; var n = Object.prototype.hasOwnProperty; }, {}], 82: [function (e, t, r) {
            "use strict";
            t.exports = function (e) { e.prototype[Symbol.iterator] = function () { var e_36; return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        e_36 = this.head;
                        _a.label = 1;
                    case 1:
                        if (!e_36) return [3 /*break*/, 4];
                        return [4 /*yield*/, e_36.value];
                    case 2:
                        _a.sent();
                        _a.label = 3;
                    case 3:
                        e_36 = e_36.next;
                        return [3 /*break*/, 1];
                    case 4: return [2 /*return*/];
                }
            }); }; };
        }, {}], 83: [function (e, t, r) {
            "use strict";
            function n(e) { var t = this; if (t instanceof n || (t = new n), t.tail = null, t.head = null, t.length = 0, e && "function" == typeof e.forEach)
                e.forEach(function (e) { t.push(e); });
            else if (arguments.length > 0)
                for (var r = 0, i = arguments.length; r < i; r++)
                    t.push(arguments[r]); return t; }
            function i(e, t, r) { var n = t === e.head ? new a(r, null, t, e) : new a(r, t, t.next, e); return null === n.next && (e.tail = n), null === n.prev && (e.head = n), e.length++, n; }
            function o(e, t) { e.tail = new a(t, e.tail, null, e), e.head || (e.head = e.tail), e.length++; }
            function s(e, t) { e.head = new a(t, null, e.head, e), e.tail || (e.tail = e.head), e.length++; }
            function a(e, t, r, n) { if (!(this instanceof a))
                return new a(e, t, r, n); this.list = n, this.value = e, t ? (t.next = this, this.prev = t) : this.prev = null, r ? (r.prev = this, this.next = r) : this.next = null; }
            t.exports = n, n.Node = a, n.create = n, n.prototype.removeNode = function (e) { if (e.list !== this)
                throw new Error("removing node which does not belong to this list"); var t = e.next, r = e.prev; return t && (t.prev = r), r && (r.next = t), e === this.head && (this.head = t), e === this.tail && (this.tail = r), e.list.length--, e.next = null, e.prev = null, e.list = null, t; }, n.prototype.unshiftNode = function (e) { if (e !== this.head) {
                e.list && e.list.removeNode(e);
                var t = this.head;
                e.list = this, e.next = t, t && (t.prev = e), this.head = e, this.tail || (this.tail = e), this.length++;
            } }, n.prototype.pushNode = function (e) { if (e !== this.tail) {
                e.list && e.list.removeNode(e);
                var t = this.tail;
                e.list = this, e.prev = t, t && (t.next = e), this.tail = e, this.head || (this.head = e), this.length++;
            } }, n.prototype.push = function () { for (var e = 0, t = arguments.length; e < t; e++)
                o(this, arguments[e]); return this.length; }, n.prototype.unshift = function () { for (var e = 0, t = arguments.length; e < t; e++)
                s(this, arguments[e]); return this.length; }, n.prototype.pop = function () { if (this.tail) {
                var e = this.tail.value;
                return this.tail = this.tail.prev, this.tail ? this.tail.next = null : this.head = null, this.length--, e;
            } }, n.prototype.shift = function () { if (this.head) {
                var e = this.head.value;
                return this.head = this.head.next, this.head ? this.head.prev = null : this.tail = null, this.length--, e;
            } }, n.prototype.forEach = function (e, t) { t = t || this; for (var r = this.head, n = 0; null !== r; n++)
                e.call(t, r.value, n, this), r = r.next; }, n.prototype.forEachReverse = function (e, t) { t = t || this; for (var r = this.tail, n = this.length - 1; null !== r; n--)
                e.call(t, r.value, n, this), r = r.prev; }, n.prototype.get = function (e) { for (var t = 0, r = this.head; null !== r && t < e; t++)
                r = r.next; if (t === e && null !== r)
                return r.value; }, n.prototype.getReverse = function (e) { for (var t = 0, r = this.tail; null !== r && t < e; t++)
                r = r.prev; if (t === e && null !== r)
                return r.value; }, n.prototype.map = function (e, t) { t = t || this; for (var r = new n, i = this.head; null !== i;)
                r.push(e.call(t, i.value, this)), i = i.next; return r; }, n.prototype.mapReverse = function (e, t) { t = t || this; for (var r = new n, i = this.tail; null !== i;)
                r.push(e.call(t, i.value, this)), i = i.prev; return r; }, n.prototype.reduce = function (e, t) { var r, n = this.head; if (arguments.length > 1)
                r = t;
            else {
                if (!this.head)
                    throw new TypeError("Reduce of empty list with no initial value");
                n = this.head.next, r = this.head.value;
            } for (var i = 0; null !== n; i++)
                r = e(r, n.value, i), n = n.next; return r; }, n.prototype.reduceReverse = function (e, t) { var r, n = this.tail; if (arguments.length > 1)
                r = t;
            else {
                if (!this.tail)
                    throw new TypeError("Reduce of empty list with no initial value");
                n = this.tail.prev, r = this.tail.value;
            } for (var i = this.length - 1; null !== n; i--)
                r = e(r, n.value, i), n = n.prev; return r; }, n.prototype.toArray = function () { for (var e = new Array(this.length), t = 0, r = this.head; null !== r; t++)
                e[t] = r.value, r = r.next; return e; }, n.prototype.toArrayReverse = function () { for (var e = new Array(this.length), t = 0, r = this.tail; null !== r; t++)
                e[t] = r.value, r = r.prev; return e; }, n.prototype.slice = function (e, t) { (t = t || this.length) < 0 && (t += this.length), (e = e || 0) < 0 && (e += this.length); var r = new n; if (t < e || t < 0)
                return r; e < 0 && (e = 0), t > this.length && (t = this.length); for (var i = 0, o = this.head; null !== o && i < e; i++)
                o = o.next; for (; null !== o && i < t; i++, o = o.next)
                r.push(o.value); return r; }, n.prototype.sliceReverse = function (e, t) { (t = t || this.length) < 0 && (t += this.length), (e = e || 0) < 0 && (e += this.length); var r = new n; if (t < e || t < 0)
                return r; e < 0 && (e = 0), t > this.length && (t = this.length); for (var i = this.length, o = this.tail; null !== o && i > t; i--)
                o = o.prev; for (; null !== o && i > e; i--, o = o.prev)
                r.push(o.value); return r; }, n.prototype.splice = function (e, t) {
                var r = [];
                for (var _a = 2; _a < arguments.length; _a++) {
                    r[_a - 2] = arguments[_a];
                }
                e > this.length && (e = this.length - 1), e < 0 && (e = this.length + e);
                for (var n = 0, o = this.head; null !== o && n < e; n++)
                    o = o.next;
                var s = [];
                for (n = 0; o && n < t; n++)
                    s.push(o.value), o = this.removeNode(o);
                null === o && (o = this.tail), o !== this.head && o !== this.tail && (o = o.prev);
                for (n = 0; n < r.length; n++)
                    o = i(this, o, r[n]);
                return s;
            }, n.prototype.reverse = function () { for (var e = this.head, t = this.tail, r = e; null !== r; r = r.prev) {
                var n = r.prev;
                r.prev = r.next, r.next = n;
            } return this.head = t, this.tail = e, this; };
            try {
                e("./iterator.js")(n);
            }
            catch (e) { }
        }, { "./iterator.js": 82 }] }, {}, [12])(12); });
//# sourceMappingURL=mqtt.min.js.map