let protobuf; !function (g) { "use strict"; !function (r, e, t) { var i = function t(i) { var n = e[i]; return n || r[i][0].call(n = e[i] = {exports: {}}, t, n, n.exports), n.exports }(t[0]); protobuf = i.util.global.protobuf = i, "function" == typeof define && define.amd && define(["long"], function (t) { return t && t.isLong && (i.util.Long = t, i.configure()), i }), "object" == typeof module && module && module.exports && (module.exports = i) }({ 1: [function (t, i, n) { i.exports = function (t, i) { var n = Array(arguments.length - 1), s = 0, r = 2, u = !0; for (; r < arguments.length;) n[s++] = arguments[r++]; return new Promise(function (r, e) { n[s] = function (t) { if (u) if (u = !1, t) e(t); else { for (var i = Array(arguments.length - 1), n = 0; n < i.length;) i[n++] = arguments[n]; r.apply(null, i) } }; try { t.apply(i || null, n) } catch (t) { u && (u = !1, e(t)) } }) } }, {}], 2: [function (t, i, n) { n.length = function (t) { var i = t.length; if (!i) return 0; for (var n = 0; 1 < --i % 4 && "=" == (t[0 | i] || "");) ++n; return Math.ceil(3 * t.length) / 4 - n }; for (var f = Array(64), h = Array(123), r = 0; r < 64;) h[f[r] = r < 26 ? r + 65 : r < 52 ? r + 71 : r < 62 ? r - 4 : r - 59 | 43] = r++; n.encode = function (t, i, n) { for (var r, e = null, s = [], u = 0, o = 0; i < n;) { var h = t[i++]; switch (o) { case 0: s[u++] = f[h >> 2], r = (3 & h) << 4, o = 1; break; case 1: s[u++] = f[r | h >> 4], r = (15 & h) << 2, o = 2; break; case 2: s[u++] = f[r | h >> 6], s[u++] = f[63 & h], o = 0 } 8191 < u && ((e = e || []).push(String.fromCharCode.apply(String, s)), u = 0) } return o && (s[u++] = f[r], s[u++] = 61, 1 === o && (s[u++] = 61)), e ? (u && e.push(String.fromCharCode.apply(String, s.slice(0, u))), e.join("")) : String.fromCharCode.apply(String, s.slice(0, u)) }; var c = "invalid encoding"; n.decode = function (t, i, n) { for (var r, e = n, s = 0, u = 0; u < t.length;) { var o = t.charCodeAt(u++); if (61 == o && 1 < s) break; if ((o = h[o]) === g) throw Error(c); switch (s) { case 0: r = o, s = 1; break; case 1: i[n++] = r << 2 | (48 & o) >> 4, r = o, s = 2; break; case 2: i[n++] = (15 & r) << 4 | (60 & o) >> 2, r = o, s = 3; break; case 3: i[n++] = (3 & r) << 6 | o, s = 0 } } if (1 === s) throw Error(c); return n - e }, n.test = function (t) { return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t) } }, {}], 3: [function (t, i, n) { function a(i, n) { "string" == typeof i && (n = i, i = g); var h = []; function f(t) { if ("string" != typeof t) { var i = c(); if (a.verbose && console.log("codegen: " + i), i = "return " + i, t) { for (var n = Object.keys(t), r = Array(n.length + 1), e = Array(n.length), s = 0; s < n.length;) r[s] = n[s], e[s] = t[n[s++]]; return r[s] = i, Function.apply(null, r).apply(null, e) } return Function(i)() } for (var u = Array(arguments.length - 1), o = 0; o < u.length;) u[o] = arguments[++o]; if (o = 0, t = t.replace(/%([%dfijs])/g, function (t, i) { var n = u[o++]; switch (i) { case"d": case"f": return "" + +("" + n); case"i": return "" + Math.floor(n); case"j": return JSON.stringify(n); case"s": return "" + n } return "%" }), o !== u.length) throw Error("parameter count mismatch"); return h.push(t), f } function c(t) { return "function " + (t || n || "") + "(" + (i && i.join(",") || "") + "){\n " + h.join("\n ") + "\n}" } return f.toString = c, f } (i.exports = a).verbose = !1 }, {}], 4: [function (t, i, n) { function r() { this.t = {} } (i.exports = r).prototype.on = function (t, i, n) { return (this.t[t] || (this.t[t] = [])).push({fn: i, ctx: n || this}), this }, r.prototype.off = function (t, i) { if (t === g) this.t = {}; else if (i === g) this.t[t] = []; else for (var n = this.t[t], r = 0; r < n.length;) n[r].fn === i ? n.splice(r, 1) : ++r; return this }, r.prototype.emit = function (t) { var i = this.t[t]; if (i) { for (var n = [], r = 1; r < arguments.length;) n.push(arguments[r++]); for (r = 0; r < i.length;) i[r].fn.apply(i[r++].ctx, n) } return this } }, {}], 5: [function (t, i, n) { i.exports = o; var s = t(1), u = t(7)("fs"); function o(n, r, e) { return r = "function" == typeof r ? (e = r, {}) : r || {}, e ? !r.xhr && u && u.readFile ? u.readFile(n, function (t, i) { return t && "undefined" != typeof XMLHttpRequest ? o.xhr(n, r, e) : t ? e(t) : e(null, r.binary ? i : i.toString("utf8")) }) : o.xhr(n, r, e) : s(o, this, n, r) } o.xhr = function (t, n, r) { var e = new XMLHttpRequest; e.onreadystatechange = function () { if (4 !== e.readyState) return g; if (0 !== e.status && 200 !== e.status) return r(Error("status " + e.status)); if (n.binary) { if (!(t = e.response)) for (var t = [], i = 0; i < e.responseText.length; ++i) t.push(255 & e.responseText.charCodeAt(i)); return r(null, "undefined" != typeof Uint8Array ? new Uint8Array(t) : t) } return r(null, e.responseText) }, n.binary && ("overrideMimeType" in e && e.overrideMimeType("text/plain; charset=x-user-defined"), e.responseType = "arraybuffer"), e.open("GET", t), e.send() } }, {1: 1, 7: 7}], 6: [function (t, i, n) { function r(t) { function i(t, i, n, r) { var e = i < 0 ? 1 : 0; t(0 === (i = e ? -i : i) ? 0 < 1 / i ? 0 : 2147483648 : isNaN(i) ? 2143289344 : 34028234663852886e22 < i ? (e << 31 | 2139095040) >>> 0 : i < 11754943508222875e-54 ? (e << 31 | Math.round(i / 1401298464324817e-60)) >>> 0 : (e << 31 | 127 + (t = Math.floor(Math.log(i) / Math.LN2)) << 23 | 8388607 & Math.round(i * Math.pow(2, -t) * 8388608)) >>> 0, n, r) } function n(t, i, n) { t = t(i, n), i = 2 * (t >> 31) + 1, n = t >>> 23 & 255, t &= 8388607; return 255 == n ? t ? NaN : 1 / 0 * i : 0 == n ? 1401298464324817e-60 * i * t : i * Math.pow(2, n - 150) * (8388608 + t) } function r(t, i, n) { o[0] = t, i[n] = h[0], i[n + 1] = h[1], i[n + 2] = h[2], i[n + 3] = h[3] } function e(t, i, n) { o[0] = t, i[n] = h[3], i[n + 1] = h[2], i[n + 2] = h[1], i[n + 3] = h[0] } function s(t, i) { return h[0] = t[i], h[1] = t[i + 1], h[2] = t[i + 2], h[3] = t[i + 3], o[0] } function u(t, i) { return h[3] = t[i], h[2] = t[i + 1], h[1] = t[i + 2], h[0] = t[i + 3], o[0] } var o, h, f, c, a; function l(t, i, n, r, e, s) { var u, o = r < 0 ? 1 : 0; 0 === (r = o ? -r : r) ? (t(0, e, s + i), t(0 < 1 / r ? 0 : 2147483648, e, s + n)) : isNaN(r) ? (t(0, e, s + i), t(2146959360, e, s + n)) : 17976931348623157e292 < r ? (t(0, e, s + i), t((o << 31 | 2146435072) >>> 0, e, s + n)) : r < 22250738585072014e-324 ? (t((u = r / 5e-324) >>> 0, e, s + i), t((o << 31 | u / 4294967296) >>> 0, e, s + n)) : (t(4503599627370496 * (u = r * Math.pow(2, -(r = 1024 === (r = Math.floor(Math.log(r) / Math.LN2)) ? 1023 : r))) >>> 0, e, s + i), t((o << 31 | r + 1023 << 20 | 1048576 * u & 1048575) >>> 0, e, s + n)) } function d(t, i, n, r, e) { i = t(r, e + i), t = t(r, e + n), r = 2 * (t >> 31) + 1, e = t >>> 20 & 2047, n = 4294967296 * (1048575 & t) + i; return 2047 == e ? n ? NaN : 1 / 0 * r : 0 == e ? 5e-324 * r * n : r * Math.pow(2, e - 1075) * (n + 4503599627370496) } function v(t, i, n) { f[0] = t, i[n] = c[0], i[n + 1] = c[1], i[n + 2] = c[2], i[n + 3] = c[3], i[n + 4] = c[4], i[n + 5] = c[5], i[n + 6] = c[6], i[n + 7] = c[7] } function b(t, i, n) { f[0] = t, i[n] = c[7], i[n + 1] = c[6], i[n + 2] = c[5], i[n + 3] = c[4], i[n + 4] = c[3], i[n + 5] = c[2], i[n + 6] = c[1], i[n + 7] = c[0] } function p(t, i) { return c[0] = t[i], c[1] = t[i + 1], c[2] = t[i + 2], c[3] = t[i + 3], c[4] = t[i + 4], c[5] = t[i + 5], c[6] = t[i + 6], c[7] = t[i + 7], f[0] } function y(t, i) { return c[7] = t[i], c[6] = t[i + 1], c[5] = t[i + 2], c[4] = t[i + 3], c[3] = t[i + 4], c[2] = t[i + 5], c[1] = t[i + 6], c[0] = t[i + 7], f[0] } return "undefined" != typeof Float32Array ? (o = new Float32Array([-0]), h = new Uint8Array(o.buffer), a = 128 === h[3], t.writeFloatLE = a ? r : e, t.writeFloatBE = a ? e : r, t.readFloatLE = a ? s : u, t.readFloatBE = a ? u : s) : (t.writeFloatLE = i.bind(null, m), t.writeFloatBE = i.bind(null, w), t.readFloatLE = n.bind(null, g), t.readFloatBE = n.bind(null, j)), "undefined" != typeof Float64Array ? (f = new Float64Array([-0]), c = new Uint8Array(f.buffer), a = 128 === c[7], t.writeDoubleLE = a ? v : b, t.writeDoubleBE = a ? b : v, t.readDoubleLE = a ? p : y, t.readDoubleBE = a ? y : p) : (t.writeDoubleLE = l.bind(null, m, 0, 4), t.writeDoubleBE = l.bind(null, w, 4, 0), t.readDoubleLE = d.bind(null, g, 0, 4), t.readDoubleBE = d.bind(null, j, 4, 0)), t } function m(t, i, n) { i[n] = 255 & t, i[n + 1] = t >>> 8 & 255, i[n + 2] = t >>> 16 & 255, i[n + 3] = t >>> 24 } function w(t, i, n) { i[n] = t >>> 24, i[n + 1] = t >>> 16 & 255, i[n + 2] = t >>> 8 & 255, i[n + 3] = 255 & t } function g(t, i) { return (t[i] | t[i + 1] << 8 | t[i + 2] << 16 | t[i + 3] << 24) >>> 0 } function j(t, i) { return (t[i] << 24 | t[i + 1] << 16 | t[i + 2] << 8 | t[i + 3]) >>> 0 } i.exports = r(r) }, {}], 7: [function (t, i, n) { function r(t) { try { var i = eval("require")(t); if (i && (i.length || Object.keys(i).length)) return i } catch (t) { } return null } i.exports = r }, {}], 8: [function (t, i, n) { var e = n.isAbsolute = function (t) { return /^(?:\/|\w+:)/.test(t) }, r = n.normalize = function (t) { var i = (t = t.replace(/\\/g, "/").replace(/\/{2,}/g, "/")).split("/"), n = e(t), t = ""; n && (t = i.shift() + "/"); for (var r = 0; r < i.length;) ".." === i[r] ? 0 < r && ".." !== i[r - 1] ? i.splice(--r, 2) : n ? i.splice(r, 1) : ++r : "." === i[r] ? i.splice(r, 1) : ++r; return t + i.join("/") }; n.resolve = function (t, i, n) { return n || (i = r(i)), !e(i) && (t = (t = n ? t : r(t)).replace(/(?:\/|^)[^/]+$/, "")).length ? r(t + "/" + i) : i } }, {}], 9: [function (t, i, n) { i.exports = function (i, n, t) { var r = t || 8192, e = r >>> 1, s = null, u = r; return function (t) { if (t < 1 || e < t) return i(t); r < u + t && (s = i(r), u = 0); t = n.call(s, u, u += t); return 7 & u && (u = 1 + (7 | u)), t } } }, {}], 10: [function (t, i, n) { n.length = function (t) { for (var i, n = 0, r = 0; r < t.length; ++r) (i = t.charCodeAt(r)) < 128 ? n += 1 : i < 2048 ? n += 2 : 55296 == (64512 & i) && 56320 == (64512 & t.charCodeAt(r + 1)) ? (++r, n += 4) : n += 3; return n }, n.read = function (t, i, n) { if (n - i < 1) return ""; for (var r, e = null, s = [], u = 0; i < n;) (r = t[i++]) < 128 ? s[u++] = r : 191 < r && r < 224 ? s[u++] = (31 & r) << 6 | 63 & t[i++] : 239 < r && r < 365 ? (r = ((7 & r) << 18 | (63 & t[i++]) << 12 | (63 & t[i++]) << 6 | 63 & t[i++]) - 65536, s[u++] = 55296 + (r >> 10), s[u++] = 56320 + (1023 & r)) : s[u++] = (15 & r) << 12 | (63 & t[i++]) << 6 | 63 & t[i++], 8191 < u && ((e = e || []).push(String.fromCharCode.apply(String, s)), u = 0); return e ? (u && e.push(String.fromCharCode.apply(String, s.slice(0, u))), e.join("")) : String.fromCharCode.apply(String, s.slice(0, u)) }, n.write = function (t, i, n) { for (var r, e, s = n, u = 0; u < t.length; ++u) (r = t.charCodeAt(u)) < 128 ? i[n++] = r : (r < 2048 ? i[n++] = r >> 6 | 192 : (55296 == (64512 & r) && 56320 == (64512 & (e = t.charCodeAt(u + 1))) ? (++u, i[n++] = (r = 65536 + ((1023 & r) << 10) + (1023 & e)) >> 18 | 240, i[n++] = r >> 12 & 63 | 128) : i[n++] = r >> 12 | 224, i[n++] = r >> 6 & 63 | 128), i[n++] = 63 & r | 128); return n - s } }, {}], 11: [function (t, i, n) { var l = t(14), d = t(33); function u(t, i, n, r) { var e = !1; if (i.resolvedType) if (i.resolvedType instanceof l) { t("switch(d%s){", r); for (var s = i.resolvedType.values, u = Object.keys(s), o = 0; o < u.length; ++o) s[u[o]] !== i.typeDefault || e || (t("default:")('if(typeof(d%s)==="number"){m%s=d%s;break}', r, r, r), i.repeated || t("break"), e = !0), t("case%j:", u[o])("case %i:", s[u[o]])("m%s=%j", r, s[u[o]])("break"); t("}") } else t('if(typeof d%s!=="object")', r)("throw TypeError(%j)", i.fullName + ": object expected")("m%s=types[%i].fromObject(d%s)", r, n, r); else { var h = !1; switch (i.type) { case"double": case"float": t("m%s=Number(d%s)", r, r); break; case"uint32": case"fixed32": t("m%s=d%s>>>0", r, r); break; case"int32": case"sint32": case"sfixed32": t("m%s=d%s|0", r, r); break; case"uint64": h = !0; case"int64": case"sint64": case"fixed64": case"sfixed64": t("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j", r, r, h)('else if(typeof d%s==="string")', r)("m%s=parseInt(d%s,10)", r, r)('else if(typeof d%s==="number")', r)("m%s=d%s", r, r)('else if(typeof d%s==="object")', r)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)", r, r, r, h ? "true" : ""); break; case"bytes": t('if(typeof d%s==="string")', r)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)", r, r, r)("else if(d%s.length >= 0)", r)("m%s=d%s", r, r); break; case"string": t("m%s=String(d%s)", r, r); break; case"bool": t("m%s=Boolean(d%s)", r, r) } } return t } function v(t, i, n, r) { if (i.resolvedType) i.resolvedType instanceof l ? t("d%s=o.enums===String?(types[%i].values[m%s]===undefined?m%s:types[%i].values[m%s]):m%s", r, n, r, r, n, r, r) : t("d%s=types[%i].toObject(m%s,o)", r, n, r); else { var e = !1; switch (i.type) { case"double": case"float": t("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s", r, r, r, r); break; case"uint64": e = !0; case"int64": case"sint64": case"fixed64": case"sfixed64": t('if(typeof m%s==="number")', r)("d%s=o.longs===String?String(m%s):m%s", r, r, r)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s", r, r, r, r, e ? "true" : "", r); break; case"bytes": t("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s", r, r, r, r, r); break; default: t("d%s=m%s", r, r) } } return t } n.fromObject = function (t) { var i = t.fieldsArray, n = d.codegen(["d"], t.name + "$fromObject")("if(d instanceof this.ctor)")("return d"); if (!i.length) return n("return new this.ctor"); n("var m=new this.ctor"); for (var r = 0; r < i.length; ++r) { var e = i[r].resolve(), s = d.safeProp(e.name); e.map ? (n("if(d%s){", s)('if(typeof d%s!=="object")', s)("throw TypeError(%j)", e.fullName + ": object expected")("m%s={}", s)("for(var ks=Object.keys(d%s),i=0;i>>3){"); for (var n = 0; n < t.fieldsArray.length; ++n) { var r = t.i[n].resolve(), e = r.resolvedType instanceof o ? "int32" : r.type, s = "m" + f.safeProp(r.name); i("case %i: {", r.id), r.map ? (i("if(%s===util.emptyObject)", s)("%s={}", s)("var c2 = r.uint32()+r.pos"), h.defaults[r.keyType] !== g ? i("k=%j", h.defaults[r.keyType]) : i("k=null"), h.defaults[e] !== g ? i("value=%j", h.defaults[e]) : i("value=null"), i("while(r.pos>>3){")("case 1: k=r.%s(); break", r.keyType)("case 2:"), h.basic[e] === g ? i("value=types[%i].decode(r,r.uint32())", n) : i("value=r.%s()", e), i("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"), h.long[r.keyType] !== g ? i('%s[typeof k==="object"?util.longToHash(k):k]=value', s) : i("%s[k]=value", s)) : r.repeated ? (i("if(!(%s&&%s.length))", s, s)("%s=[]", s), h.packed[e] !== g && i("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos>> 0, 8 | c.mapKey[s.keyType], s.keyType), h === g ? n("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()", u, i) : n(".uint32(%i).%s(%s[ks[i]]).ldelim()", 16 | h, o, i), n("}")("}")) : s.repeated ? (n("if(%s!=null&&%s.length){", i, i), s.packed && c.packed[o] !== g ? n("w.uint32(%i).fork()", (s.id << 3 | 2) >>> 0)("for(var i=0;i<%s.length;++i)", i)("w.%s(%s[i])", o, i)("w.ldelim()") : (n("for(var i=0;i<%s.length;++i)", i), h === g ? l(n, s, u, i + "[i]") : n("w.uint32(%i).%s(%s[i])", (s.id << 3 | h) >>> 0, o, i)), n("}")) : (s.optional && n("if(%s!=null&&Object.hasOwnProperty.call(m,%j))", i, s.name), h === g ? l(n, s, u, i) : n("w.uint32(%i).%s(%s)", (s.id << 3 | h) >>> 0, o, i)) } return n("return w") }; var f = t(14), c = t(32), a = t(33); function l(t, i, n, r) { i.resolvedType.group ? t("types[%i].encode(%s,w.uint32(%i)).uint32(%i)", n, r, (i.id << 3 | 3) >>> 0, (i.id << 3 | 4) >>> 0) : t("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()", n, r, (i.id << 3 | 2) >>> 0) } }, {14: 14, 32: 32, 33: 33}], 14: [function (t, i, n) { i.exports = s; var h = t(22), r = (((s.prototype = Object.create(h.prototype)).constructor = s).className = "Enum", t(21)), e = t(33); function s(t, i, n, r, e, s) { if (h.call(this, t, n), i && "object" != typeof i) throw TypeError("values must be an object"); if (this.valuesById = {}, this.values = Object.create(this.valuesById), this.comment = r, this.comments = e || {}, this.valuesOptions = s, this.reserved = g, i) for (var u = Object.keys(i), o = 0; o < u.length; ++o) "number" == typeof i[u[o]] && (this.valuesById[this.values[u[o]] = i[u[o]]] = u[o]) } s.fromJSON = function (t, i) { t = new s(t, i.values, i.options, i.comment, i.comments); return t.reserved = i.reserved, t }, s.prototype.toJSON = function (t) { t = !!t && !!t.keepComments; return e.toObject(["options", this.options, "valuesOptions", this.valuesOptions, "values", this.values, "reserved", this.reserved && this.reserved.length ? this.reserved : g, "comment", t ? this.comment : g, "comments", t ? this.comments : g]) }, s.prototype.add = function (t, i, n, r) { if (!e.isString(t)) throw TypeError("name must be a string"); if (!e.isInteger(i)) throw TypeError("id must be an integer"); if (this.values[t] !== g) throw Error("duplicate name '" + t + "' in " + this); if (this.isReservedId(i)) throw Error("id " + i + " is reserved in " + this); if (this.isReservedName(t)) throw Error("name '" + t + "' is reserved in " + this); if (this.valuesById[i] !== g) { if (!this.options || !this.options.allow_alias) throw Error("duplicate id " + i + " in " + this); this.values[t] = i } else this.valuesById[this.values[t] = i] = t; return r && (this.valuesOptions === g && (this.valuesOptions = {}), this.valuesOptions[t] = r || null), this.comments[t] = n || null, this }, s.prototype.remove = function (t) { if (!e.isString(t)) throw TypeError("name must be a string"); var i = this.values[t]; if (null == i) throw Error("name '" + t + "' does not exist in " + this); return delete this.valuesById[i], delete this.values[t], delete this.comments[t], this.valuesOptions && delete this.valuesOptions[t], this }, s.prototype.isReservedId = function (t) { return r.isReservedId(this.reserved, t) }, s.prototype.isReservedName = function (t) { return r.isReservedName(this.reserved, t) } }, {21: 21, 22: 22, 33: 33}], 15: [function (t, i, n) { i.exports = u; var r, o = t(22), e = (((u.prototype = Object.create(o.prototype)).constructor = u).className = "Field", t(14)), h = t(32), f = t(33), c = /^required|optional|repeated$/; function u(t, i, n, r, e, s, u) { if (f.isObject(r) ? (u = e, s = r, r = e = g) : f.isObject(e) && (u = s, s = e, e = g), o.call(this, t, s), !f.isInteger(i) || i < 0) throw TypeError("id must be a non-negative integer"); if (!f.isString(n)) throw TypeError("type must be a string"); if (r !== g && !c.test(r = r.toString().toLowerCase())) throw TypeError("rule must be a string rule"); if (e !== g && !f.isString(e)) throw TypeError("extend must be a string"); this.rule = (r = "proto3_optional" === r ? "optional" : r) && "optional" !== r ? r : g, this.type = n, this.id = i, this.extend = e || g, this.required = "required" === r, this.optional = !this.required, this.repeated = "repeated" === r, this.map = !1, this.message = null, this.partOf = null, this.typeDefault = null, this.defaultValue = null, this.long = !!f.Long && h.long[n] !== g, this.bytes = "bytes" === n, this.resolvedType = null, this.extensionField = null, this.declaringField = null, this.n = null, this.comment = u } u.fromJSON = function (t, i) { return new u(t, i.id, i.type, i.rule, i.extend, i.options, i.comment) }, Object.defineProperty(u.prototype, "packed", { get: function () { return null === this.n && (this.n = !1 !== this.getOption("packed")), this.n } }), u.prototype.setOption = function (t, i, n) { return "packed" === t && (this.n = null), o.prototype.setOption.call(this, t, i, n) }, u.prototype.toJSON = function (t) { t = !!t && !!t.keepComments; return f.toObject(["rule", "optional" !== this.rule && this.rule || g, "type", this.type, "id", this.id, "extend", this.extend, "options", this.options, "comment", t ? this.comment : g]) }, u.prototype.resolve = function () { var t; return this.resolved ? this : ((this.typeDefault = h.defaults[this.type]) === g ? (this.resolvedType = (this.declaringField || this).parent.lookupTypeOrEnum(this.type), this.resolvedType instanceof r ? this.typeDefault = null : this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]) : this.options && this.options.proto3_optional && (this.typeDefault = null), this.options && null != this.options.default && (this.typeDefault = this.options.default, this.resolvedType instanceof e && "string" == typeof this.typeDefault && (this.typeDefault = this.resolvedType.values[this.typeDefault])), this.options && (!0 !== this.options.packed && (this.options.packed === g || !this.resolvedType || this.resolvedType instanceof e) || delete this.options.packed, Object.keys(this.options).length || (this.options = g)), this.long ? (this.typeDefault = f.Long.fromNumber(this.typeDefault, "u" == (this.type[0] || "")), Object.freeze && Object.freeze(this.typeDefault)) : this.bytes && "string" == typeof this.typeDefault && (f.base64.test(this.typeDefault) ? f.base64.decode(this.typeDefault, t = f.newBuffer(f.base64.length(this.typeDefault)), 0) : f.utf8.write(this.typeDefault, t = f.newBuffer(f.utf8.length(this.typeDefault)), 0), this.typeDefault = t), this.map ? this.defaultValue = f.emptyObject : this.repeated ? this.defaultValue = f.emptyArray : this.defaultValue = this.typeDefault, this.parent instanceof r && (this.parent.ctor.prototype[this.name] = this.defaultValue), o.prototype.resolve.call(this)) }, u.d = function (n, r, e, s) { return "function" == typeof r ? r = f.decorateType(r).name : r && "object" == typeof r && (r = f.decorateEnum(r).name), function (t, i) { f.decorateType(t.constructor).add(new u(i, n, r, e, {default: s})) } }, u.r = function (t) { r = t } }, {14: 14, 22: 22, 32: 32, 33: 33}], 16: [function (t, i, n) { var r = i.exports = t(17); r.build = "light", r.load = function (t, i, n) { return (i = "function" == typeof i ? (n = i, new r.Root) : i || new r.Root).load(t, n) }, r.loadSync = function (t, i) { return (i = i || new r.Root).loadSync(t) }, r.encoder = t(13), r.decoder = t(12), r.verifier = t(36), r.converter = t(11), r.ReflectionObject = t(22), r.Namespace = t(21), r.Root = t(26), r.Enum = t(14), r.Type = t(31), r.Field = t(15), r.OneOf = t(23), r.MapField = t(18), r.Service = t(30), r.Method = t(20), r.Message = t(19), r.wrappers = t(37), r.types = t(32), r.util = t(33), r.ReflectionObject.r(r.Root), r.Namespace.r(r.Type, r.Service, r.Enum), r.Root.r(r.Type), r.Field.r(r.Type) }, { 11: 11, 12: 12, 13: 13, 14: 14, 15: 15, 17: 17, 18: 18, 19: 19, 20: 20, 21: 21, 22: 22, 23: 23, 26: 26, 30: 30, 31: 31, 32: 32, 33: 33, 36: 36, 37: 37 }], 17: [function (t, i, n) { var r = n; function e() { r.util.r(), r.Writer.r(r.BufferWriter), r.Reader.r(r.BufferReader) } r.build = "minimal", r.Writer = t(38), r.BufferWriter = t(39), r.Reader = t(24), r.BufferReader = t(25), r.util = t(35), r.rpc = t(28), r.roots = t(27), r.configure = e, e() }, {24: 24, 25: 25, 27: 27, 28: 28, 35: 35, 38: 38, 39: 39}], 18: [function (t, i, n) { i.exports = s; var u = t(15), r = (((s.prototype = Object.create(u.prototype)).constructor = s).className = "MapField", t(32)), o = t(33); function s(t, i, n, r, e, s) { if (u.call(this, t, i, r, g, g, e, s), !o.isString(n)) throw TypeError("keyType must be a string"); this.keyType = n, this.resolvedKeyType = null, this.map = !0 } s.fromJSON = function (t, i) { return new s(t, i.id, i.keyType, i.type, i.options, i.comment) }, s.prototype.toJSON = function (t) { t = !!t && !!t.keepComments; return o.toObject(["keyType", this.keyType, "type", this.type, "id", this.id, "extend", this.extend, "options", this.options, "comment", t ? this.comment : g]) }, s.prototype.resolve = function () { if (this.resolved) return this; if (r.mapKey[this.keyType] === g) throw Error("invalid key type: " + this.keyType); return u.prototype.resolve.call(this) }, s.d = function (n, r, e) { return "function" == typeof e ? e = o.decorateType(e).name : e && "object" == typeof e && (e = o.decorateEnum(e).name), function (t, i) { o.decorateType(t.constructor).add(new s(i, n, r, e)) } } }, {15: 15, 32: 32, 33: 33}], 19: [function (t, i, n) { i.exports = e; var r = t(35); function e(t) { if (t) for (var i = Object.keys(t), n = 0; n < i.length; ++n) this[i[n]] = t[i[n]] } e.create = function (t) { return this.$type.create(t) }, e.encode = function (t, i) { return this.$type.encode(t, i) }, e.encodeDelimited = function (t, i) { return this.$type.encodeDelimited(t, i) }, e.decode = function (t) { return this.$type.decode(t) }, e.decodeDelimited = function (t) { return this.$type.decodeDelimited(t) }, e.verify = function (t) { return this.$type.verify(t) }, e.fromObject = function (t) { return this.$type.fromObject(t) }, e.toObject = function (t, i) { return this.$type.toObject(t, i) }, e.prototype.toJSON = function () { return this.$type.toObject(this, r.toJSONOptions) } }, {35: 35}], 20: [function (t, i, n) { i.exports = r; var f = t(22), c = (((r.prototype = Object.create(f.prototype)).constructor = r).className = "Method", t(33)); function r(t, i, n, r, e, s, u, o, h) { if (c.isObject(e) ? (u = e, e = s = g) : c.isObject(s) && (u = s, s = g), i !== g && !c.isString(i)) throw TypeError("type must be a string"); if (!c.isString(n)) throw TypeError("requestType must be a string"); if (!c.isString(r)) throw TypeError("responseType must be a string"); f.call(this, t, u), this.type = i || "rpc", this.requestType = n, this.requestStream = !!e || g, this.responseType = r, this.responseStream = !!s || g, this.resolvedRequestType = null, this.resolvedResponseType = null, this.comment = o, this.parsedOptions = h } r.fromJSON = function (t, i) { return new r(t, i.type, i.requestType, i.responseType, i.requestStream, i.responseStream, i.options, i.comment, i.parsedOptions) }, r.prototype.toJSON = function (t) { t = !!t && !!t.keepComments; return c.toObject(["type", "rpc" !== this.type && this.type || g, "requestType", this.requestType, "requestStream", this.requestStream, "responseType", this.responseType, "responseStream", this.responseStream, "options", this.options, "comment", t ? this.comment : g, "parsedOptions", this.parsedOptions]) }, r.prototype.resolve = function () { return this.resolved ? this : (this.resolvedRequestType = this.parent.lookupType(this.requestType), this.resolvedResponseType = this.parent.lookupType(this.responseType), f.prototype.resolve.call(this)) } }, {22: 22, 33: 33}], 21: [function (t, i, n) { i.exports = a; var e, s, u, r = t(22), o = (((a.prototype = Object.create(r.prototype)).constructor = a).className = "Namespace", t(15)), h = t(33), f = t(23); function c(t, i) { if (!t || !t.length) return g; for (var n = {}, r = 0; r < t.length; ++r) n[t[r].name] = t[r].toJSON(i); return n } function a(t, i) { r.call(this, t, i), this.nested = g, this.e = null } function l(t) { return t.e = null, t } a.fromJSON = function (t, i) { return new a(t, i.options).addJSON(i.nested) }, a.arrayToJSON = c, a.isReservedId = function (t, i) { if (t) for (var n = 0; n < t.length; ++n) if ("string" != typeof t[n] && t[n][0] <= i && t[n][1] > i) return !0; return !1 }, a.isReservedName = function (t, i) { if (t) for (var n = 0; n < t.length; ++n) if (t[n] === i) return !0; return !1 }, Object.defineProperty(a.prototype, "nestedArray", { get: function () { return this.e || (this.e = h.toArray(this.nested)) } }), a.prototype.toJSON = function (t) { return h.toObject(["options", this.options, "nested", c(this.nestedArray, t)]) }, a.prototype.addJSON = function (t) { if (t) for (var i, n = Object.keys(t), r = 0; r < n.length; ++r) i = t[n[r]], this.add((i.fields !== g ? e : i.values !== g ? u : i.methods !== g ? s : i.id !== g ? o : a).fromJSON(n[r], i)); return this }, a.prototype.get = function (t) { return this.nested && this.nested[t] || null }, a.prototype.getEnum = function (t) { if (this.nested && this.nested[t] instanceof u) return this.nested[t].values; throw Error("no such enum: " + t) }, a.prototype.add = function (t) { if (!(t instanceof o && t.extend !== g || t instanceof e || t instanceof f || t instanceof u || t instanceof s || t instanceof a)) throw TypeError("object must be a valid nested object"); if (this.nested) { var i = this.get(t.name); if (i) { if (!(i instanceof a && t instanceof a) || i instanceof e || i instanceof s) throw Error("duplicate name '" + t.name + "' in " + this); for (var n = i.nestedArray, r = 0; r < n.length; ++r) t.add(n[r]); this.remove(i), this.nested || (this.nested = {}), t.setOptions(i.options, !0) } } else this.nested = {}; return (this.nested[t.name] = t).onAdd(this), l(this) }, a.prototype.remove = function (t) { if (!(t instanceof r)) throw TypeError("object must be a ReflectionObject"); if (t.parent !== this) throw Error(t + " is not a member of " + this); return delete this.nested[t.name], Object.keys(this.nested).length || (this.nested = g), t.onRemove(this), l(this) }, a.prototype.define = function (t, i) { if (h.isString(t)) t = t.split("."); else if (!Array.isArray(t)) throw TypeError("illegal path"); if (t && t.length && "" === t[0]) throw Error("path must be relative"); for (var n = this; 0 < t.length;) { var r = t.shift(); if (n.nested && n.nested[r]) { if (!((n = n.nested[r]) instanceof a)) throw Error("path conflicts with non-namespace objects") } else n.add(n = new a(r)) } return i && n.addJSON(i), n }, a.prototype.resolveAll = function () { for (var t = this.nestedArray, i = 0; i < t.length;) t[i] instanceof a ? t[i++].resolveAll() : t[i++].resolve(); return this.resolve() }, a.prototype.lookup = function (t, i, n) { if ("boolean" == typeof i ? (n = i, i = g) : i && !Array.isArray(i) && (i = [i]), h.isString(t) && t.length) { if ("." === t) return this.root; t = t.split(".") } else if (!t.length) return this; if ("" === t[0]) return this.root.lookup(t.slice(1), i); var r = this.get(t[0]); if (r) { if (1 === t.length) { if (!i || ~i.indexOf(r.constructor)) return r } else if (r instanceof a && (r = r.lookup(t.slice(1), i, !0))) return r } else for (var e = 0; e < this.nestedArray.length; ++e) if (this.e[e] instanceof a && (r = this.e[e].lookup(t, i, !0))) return r; return null === this.parent || n ? null : this.parent.lookup(t, i) }, a.prototype.lookupType = function (t) { var i = this.lookup(t, [e]); if (i) return i; throw Error("no such type: " + t) }, a.prototype.lookupEnum = function (t) { var i = this.lookup(t, [u]); if (i) return i; throw Error("no such Enum '" + t + "' in " + this) }, a.prototype.lookupTypeOrEnum = function (t) { var i = this.lookup(t, [e, u]); if (i) return i; throw Error("no such Type or Enum '" + t + "' in " + this) }, a.prototype.lookupService = function (t) { var i = this.lookup(t, [s]); if (i) return i; throw Error("no such Service '" + t + "' in " + this) }, a.r = function (t, i, n) { e = t, s = i, u = n } }, {15: 15, 22: 22, 23: 23, 33: 33}], 22: [function (t, i, n) { (i.exports = e).className = "ReflectionObject"; var r, u = t(33); function e(t, i) { if (!u.isString(t)) throw TypeError("name must be a string"); if (i && !u.isObject(i)) throw TypeError("options must be an object"); this.options = i, this.parsedOptions = null, this.name = t, this.parent = null, this.resolved = !1, this.comment = null, this.filename = null } Object.defineProperties(e.prototype, { root: { get: function () { for (var t = this; null !== t.parent;) t = t.parent; return t } }, fullName: { get: function () { for (var t = [this.name], i = this.parent; i;) t.unshift(i.name), i = i.parent; return t.join(".") } } }), e.prototype.toJSON = function () { throw Error() }, e.prototype.onAdd = function (t) { this.parent && this.parent !== t && this.parent.remove(this), this.parent = t, this.resolved = !1; t = t.root; t instanceof r && t.u(this) }, e.prototype.onRemove = function (t) { t = t.root; t instanceof r && t.o(this), this.parent = null, this.resolved = !1 }, e.prototype.resolve = function () { return this.resolved || this.root instanceof r && (this.resolved = !0), this }, e.prototype.getOption = function (t) { return this.options ? this.options[t] : g }, e.prototype.setOption = function (t, i, n) { return n && this.options && this.options[t] !== g || ((this.options || (this.options = {}))[t] = i), this }, e.prototype.setParsedOption = function (i, t, n) { this.parsedOptions || (this.parsedOptions = []); var r, e, s = this.parsedOptions; return n ? (r = s.find(function (t) { return Object.prototype.hasOwnProperty.call(t, i) })) ? (e = r[i], u.setProperty(e, n, t)) : ((r = {})[i] = u.setProperty({}, n, t), s.push(r)) : ((e = {})[i] = t, s.push(e)), this }, e.prototype.setOptions = function (t, i) { if (t) for (var n = Object.keys(t), r = 0; r < n.length; ++r) this.setOption(n[r], t[n[r]], i); return this }, e.prototype.toString = function () { var t = this.constructor.className, i = this.fullName; return i.length ? t + " " + i : t }, e.r = function (t) { r = t } }, {33: 33}], 23: [function (t, i, n) { i.exports = u; var e = t(22), r = (((u.prototype = Object.create(e.prototype)).constructor = u).className = "OneOf", t(15)), s = t(33); function u(t, i, n, r) { if (Array.isArray(i) || (n = i, i = g), e.call(this, t, n), i !== g && !Array.isArray(i)) throw TypeError("fieldNames must be an Array"); this.oneof = i || [], this.fieldsArray = [], this.comment = r } function o(t) { if (t.parent) for (var i = 0; i < t.fieldsArray.length; ++i) t.fieldsArray[i].parent || t.parent.add(t.fieldsArray[i]) } u.fromJSON = function (t, i) { return new u(t, i.oneof, i.options, i.comment) }, u.prototype.toJSON = function (t) { t = !!t && !!t.keepComments; return s.toObject(["options", this.options, "oneof", this.oneof, "comment", t ? this.comment : g]) }, u.prototype.add = function (t) { if (t instanceof r) return t.parent && t.parent !== this.parent && t.parent.remove(t), this.oneof.push(t.name), this.fieldsArray.push(t), o(t.partOf = this), this; throw TypeError("field must be a Field") }, u.prototype.remove = function (t) { if (!(t instanceof r)) throw TypeError("field must be a Field"); var i = this.fieldsArray.indexOf(t); if (i < 0) throw Error(t + " is not a member of " + this); return this.fieldsArray.splice(i, 1), -1 < (i = this.oneof.indexOf(t.name)) && this.oneof.splice(i, 1), t.partOf = null, this }, u.prototype.onAdd = function (t) { e.prototype.onAdd.call(this, t); for (var i = 0; i < this.oneof.length; ++i) { var n = t.get(this.oneof[i]); n && !n.partOf && (n.partOf = this).fieldsArray.push(n) } o(this) }, u.prototype.onRemove = function (t) { for (var i, n = 0; n < this.fieldsArray.length; ++n) (i = this.fieldsArray[n]).parent && i.parent.remove(i); e.prototype.onRemove.call(this, t) }, u.d = function () { for (var n = Array(arguments.length), t = 0; t < arguments.length;) n[t] = arguments[t++]; return function (t, i) { s.decorateType(t.constructor).add(new u(i, n)), Object.defineProperty(t, i, { get: s.oneOfGetter(n), set: s.oneOfSetter(n) }) } } }, {15: 15, 22: 22, 33: 33}], 24: [function (t, i, n) { i.exports = h; var r, e = t(35), s = e.LongBits, u = e.utf8; function o(t, i) { return RangeError("index out of range: " + t.pos + " + " + (i || 1) + " > " + t.len) } function h(t) { this.buf = t, this.pos = 0, this.len = t.length } function f() { return e.Buffer ? function (t) { return (h.create = function (t) { return e.Buffer.isBuffer(t) ? new r(t) : a(t) })(t) } : a } var c, a = "undefined" != typeof Uint8Array ? function (t) { if (t instanceof Uint8Array || Array.isArray(t)) return new h(t); throw Error("illegal buffer") } : function (t) { if (Array.isArray(t)) return new h(t); throw Error("illegal buffer") }; function l() { var t = new s(0, 0), i = 0; if (!(4 < this.len - this.pos)) { for (; i < 3; ++i) { if (this.pos >= this.len) throw o(this); if (t.lo = (t.lo | (127 & this.buf[this.pos]) << 7 * i) >>> 0, this.buf[this.pos++] < 128) return t } return t.lo = (t.lo | (127 & this.buf[this.pos++]) << 7 * i) >>> 0, t } for (; i < 4; ++i) if (t.lo = (t.lo | (127 & this.buf[this.pos]) << 7 * i) >>> 0, this.buf[this.pos++] < 128) return t; if (t.lo = (t.lo | (127 & this.buf[this.pos]) << 28) >>> 0, t.hi = (t.hi | (127 & this.buf[this.pos]) >> 4) >>> 0, this.buf[this.pos++] < 128) return t; if (i = 0, 4 < this.len - this.pos) { for (; i < 5; ++i) if (t.hi = (t.hi | (127 & this.buf[this.pos]) << 7 * i + 3) >>> 0, this.buf[this.pos++] < 128) return t } else for (; i < 5; ++i) { if (this.pos >= this.len) throw o(this); if (t.hi = (t.hi | (127 & this.buf[this.pos]) << 7 * i + 3) >>> 0, this.buf[this.pos++] < 128) return t } throw Error("invalid varint encoding") } function d(t, i) { return (t[i - 4] | t[i - 3] << 8 | t[i - 2] << 16 | t[i - 1] << 24) >>> 0 } function v() { if (this.pos + 8 > this.len) throw o(this, 8); return new s(d(this.buf, this.pos += 4), d(this.buf, this.pos += 4)) } h.create = f(), h.prototype.h = e.Array.prototype.subarray || e.Array.prototype.slice, h.prototype.uint32 = (c = 4294967295, function () { if (c = (127 & this.buf[this.pos]) >>> 0, this.buf[this.pos++] < 128 || (c = (c | (127 & this.buf[this.pos]) << 7) >>> 0, this.buf[this.pos++] < 128 || (c = (c | (127 & this.buf[this.pos]) << 14) >>> 0, this.buf[this.pos++] < 128 || (c = (c | (127 & this.buf[this.pos]) << 21) >>> 0, this.buf[this.pos++] < 128 || (c = (c | (15 & this.buf[this.pos]) << 28) >>> 0, this.buf[this.pos++] < 128 || !((this.pos += 5) > this.len)))))) return c; throw this.pos = this.len, o(this, 10) }), h.prototype.int32 = function () { return 0 | this.uint32() }, h.prototype.sint32 = function () { var t = this.uint32(); return t >>> 1 ^ -(1 & t) | 0 }, h.prototype.bool = function () { return 0 !== this.uint32() }, h.prototype.fixed32 = function () { if (this.pos + 4 > this.len) throw o(this, 4); return d(this.buf, this.pos += 4) }, h.prototype.sfixed32 = function () { if (this.pos + 4 > this.len) throw o(this, 4); return 0 | d(this.buf, this.pos += 4) }, h.prototype.float = function () { if (this.pos + 4 > this.len) throw o(this, 4); var t = e.float.readFloatLE(this.buf, this.pos); return this.pos += 4, t }, h.prototype.double = function () { if (this.pos + 8 > this.len) throw o(this, 4); var t = e.float.readDoubleLE(this.buf, this.pos); return this.pos += 8, t }, h.prototype.bytes = function () { var t = this.uint32(), i = this.pos, n = this.pos + t; if (n > this.len) throw o(this, t); return this.pos += t, Array.isArray(this.buf) ? this.buf.slice(i, n) : i === n ? new this.buf.constructor(0) : this.h.call(this.buf, i, n) }, h.prototype.string = function () { var t = this.bytes(); return u.read(t, 0, t.length) }, h.prototype.skip = function (t) { if ("number" == typeof t) { if (this.pos + t > this.len) throw o(this, t); this.pos += t } else do { if (this.pos >= this.len) throw o(this) } while (128 & this.buf[this.pos++]); return this }, h.prototype.skipType = function (t) { switch (t) { case 0: this.skip(); break; case 1: this.skip(8); break; case 2: this.skip(this.uint32()); break; case 3: for (; 4 != (t = 7 & this.uint32());) this.skipType(t); break; case 5: this.skip(4); break; default: throw Error("invalid wire type " + t + " at offset " + this.pos) } return this }, h.r = function (t) { r = t, h.create = f(), r.r(); var i = e.Long ? "toLong" : "toNumber"; e.merge(h.prototype, { int64: function () { return l.call(this)[i](!1) }, uint64: function () { return l.call(this)[i](!0) }, sint64: function () { return l.call(this).zzDecode()[i](!1) }, fixed64: function () { return v.call(this)[i](!0) }, sfixed64: function () { return v.call(this)[i](!1) } }) } }, {35: 35}], 25: [function (t, i, n) { i.exports = s; var r = t(24), e = ((s.prototype = Object.create(r.prototype)).constructor = s, t(35)); function s(t) { r.call(this, t) } s.r = function () { e.Buffer && (s.prototype.h = e.Buffer.prototype.slice) }, s.prototype.string = function () { var t = this.uint32(); return this.buf.utf8Slice ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + t, this.len)) : this.buf.toString("utf-8", this.pos, this.pos = Math.min(this.pos + t, this.len)) }, s.r() }, {24: 24, 35: 35}], 26: [function (t, i, n) { i.exports = h; var r, d, v, e = t(21), s = (((h.prototype = Object.create(e.prototype)).constructor = h).className = "Root", t(15)), u = t(14), o = t(23), b = t(33); function h(t) { e.call(this, "", t), this.deferred = [], this.files = [] } function p() { } h.fromJSON = function (t, i) { return i = i || new h, t.options && i.setOptions(t.options), i.addJSON(t.nested) }, h.prototype.resolvePath = b.path.resolve, h.prototype.fetch = b.fetch, h.prototype.load = function t(i, s, e) { "function" == typeof s && (e = s, s = g); var u = this; if (!e) return b.asPromise(t, u, i, s); var o = e === p; function h(t, i) { if (e) { var n = e; if (e = null, o) throw t; n(t, i) } } function f(t) { var i = t.lastIndexOf("google/protobuf/"); if (-1 < i) { t = t.substring(i); if (t in v) return t } return null } function c(t, i) { try { if (b.isString(i) && "{" == (i[0] || "") && (i = JSON.parse(i)), b.isString(i)) { d.filename = t; var n, r = d(i, u, s), e = 0; if (r.imports) for (; e < r.imports.length; ++e) (n = f(r.imports[e]) || u.resolvePath(t, r.imports[e])) && a(n); if (r.weakImports) for (e = 0; e < r.weakImports.length; ++e) (n = f(r.weakImports[e]) || u.resolvePath(t, r.weakImports[e])) && a(n, !0) } else u.setOptions(i.options).addJSON(i.nested) } catch (t) { h(t) } o || l || h(null, u) } function a(n, r) { if (!~u.files.indexOf(n)) if (u.files.push(n), n in v) o ? c(n, v[n]) : (++l, setTimeout(function () { --l, c(n, v[n]) })); else if (o) { var t; try { t = b.fs.readFileSync(n).toString("utf8") } catch (t) { return void (r || h(t)) } c(n, t) } else ++l, u.fetch(n, function (t, i) { --l, e && (t ? r ? l || h(null, u) : h(t) : c(n, i)) }) } var l = 0; b.isString(i) && (i = [i]); for (var n, r = 0; r < i.length; ++r) (n = u.resolvePath("", i[r])) && a(n); return o ? u : (l || h(null, u), g) }, h.prototype.loadSync = function (t, i) { if (b.isNode) return this.load(t, i, p); throw Error("not supported") }, h.prototype.resolveAll = function () { if (this.deferred.length) throw Error("unresolvable extensions: " + this.deferred.map(function (t) { return "'extend " + t.extend + "' in " + t.parent.fullName }).join(", ")); return e.prototype.resolveAll.call(this) }; var f = /^[A-Z]/; function c(t, i) { var n, r = i.parent.lookup(i.extend); if (r) return ((n = new s(i.fullName, i.id, i.type, i.rule, g, i.options)).declaringField = i).extensionField = n, r.add(n), 1 } h.prototype.u = function (t) { if (t instanceof s) t.extend === g || t.extensionField || c(0, t) || this.deferred.push(t); else if (t instanceof u) f.test(t.name) && (t.parent[t.name] = t.values); else if (!(t instanceof o)) { if (t instanceof r) for (var i = 0; i < this.deferred.length;) c(0, this.deferred[i]) ? this.deferred.splice(i, 1) : ++i; for (var n = 0; n < t.nestedArray.length; ++n) this.u(t.e[n]); f.test(t.name) && (t.parent[t.name] = t) } }, h.prototype.o = function (t) { var i; if (t instanceof s) t.extend !== g && (t.extensionField ? (t.extensionField.parent.remove(t.extensionField), t.extensionField = null) : -1 < (i = this.deferred.indexOf(t)) && this.deferred.splice(i, 1)); else if (t instanceof u) f.test(t.name) && delete t.parent[t.name]; else if (t instanceof e) { for (var n = 0; n < t.nestedArray.length; ++n) this.o(t.e[n]); f.test(t.name) && delete t.parent[t.name] } }, h.r = function (t, i, n) { r = t, d = i, v = n } }, {14: 14, 15: 15, 21: 21, 23: 23, 33: 33}], 27: [function (t, i, n) { i.exports = {} }, {}], 28: [function (t, i, n) { n.Service = t(29) }, {29: 29}], 29: [function (t, i, n) { i.exports = r; var o = t(35); function r(t, i, n) { if ("function" != typeof t) throw TypeError("rpcImpl must be a function"); o.EventEmitter.call(this), this.rpcImpl = t, this.requestDelimited = !!i, this.responseDelimited = !!n } ((r.prototype = Object.create(o.EventEmitter.prototype)).constructor = r).prototype.rpcCall = function t(n, i, r, e, s) { if (!e) throw TypeError("request must be specified"); var u = this; if (!s) return o.asPromise(t, u, n, i, r, e); if (!u.rpcImpl) return setTimeout(function () { s(Error("already ended")) }, 0), g; try { return u.rpcImpl(n, i[u.requestDelimited ? "encodeDelimited" : "encode"](e).finish(), function (t, i) { if (t) return u.emit("error", t, n), s(t); if (null === i) return u.end(!0), g; if (!(i instanceof r)) try { i = r[u.responseDelimited ? "decodeDelimited" : "decode"](i) } catch (t) { return u.emit("error", t, n), s(t) } return u.emit("data", i, n), s(null, i) }) } catch (t) { return u.emit("error", t, n), setTimeout(function () { s(t) }, 0), g } }, r.prototype.end = function (t) { return this.rpcImpl && (t || this.rpcImpl(null, null, null), this.rpcImpl = null, this.emit("end").off()), this } }, {35: 35}], 30: [function (t, i, n) { i.exports = u; var r = t(21), s = (((u.prototype = Object.create(r.prototype)).constructor = u).className = "Service", t(20)), o = t(33), h = t(28); function u(t, i) { r.call(this, t, i), this.methods = {}, this.f = null } function e(t) { return t.f = null, t } u.fromJSON = function (t, i) { var n = new u(t, i.options); if (i.methods) for (var r = Object.keys(i.methods), e = 0; e < r.length; ++e) n.add(s.fromJSON(r[e], i.methods[r[e]])); return i.nested && n.addJSON(i.nested), n.comment = i.comment, n }, u.prototype.toJSON = function (t) { var i = r.prototype.toJSON.call(this, t), n = !!t && !!t.keepComments; return o.toObject(["options", i && i.options || g, "methods", r.arrayToJSON(this.methodsArray, t) || {}, "nested", i && i.nested || g, "comment", n ? this.comment : g]) }, Object.defineProperty(u.prototype, "methodsArray", { get: function () { return this.f || (this.f = o.toArray(this.methods)) } }), u.prototype.get = function (t) { return this.methods[t] || r.prototype.get.call(this, t) }, u.prototype.resolveAll = function () { for (var t = this.methodsArray, i = 0; i < t.length; ++i) t[i].resolve(); return r.prototype.resolve.call(this) }, u.prototype.add = function (t) { if (this.get(t.name)) throw Error("duplicate name '" + t.name + "' in " + this); return t instanceof s ? e((this.methods[t.name] = t).parent = this) : r.prototype.add.call(this, t) }, u.prototype.remove = function (t) { if (t instanceof s) { if (this.methods[t.name] !== t) throw Error(t + " is not a member of " + this); return delete this.methods[t.name], t.parent = null, e(this) } return r.prototype.remove.call(this, t) }, u.prototype.create = function (t, i, n) { for (var r, e = new h.Service(t, i, n), s = 0; s < this.methodsArray.length; ++s) { var u = o.lcFirst((r = this.f[s]).resolve().name).replace(/[^$\w_]/g, ""); e[u] = o.codegen(["r", "c"], o.isReserved(u) ? u + "_" : u)("return this.rpcCall(m,q,s,r,c)")({ m: r, q: r.resolvedRequestType.ctor, s: r.resolvedResponseType.ctor }) } return e } }, {20: 20, 21: 21, 28: 28, 33: 33}], 31: [function (t, i, n) { i.exports = w; var u = t(21), o = (((w.prototype = Object.create(u.prototype)).constructor = w).className = "Type", t(14)), h = t(23), f = t(15), c = t(18), a = t(30), e = t(19), s = t(24), l = t(38), d = t(33), v = t(13), b = t(12), p = t(36), y = t(11), m = t(37); function w(t, i) { u.call(this, t, i), this.fields = {}, this.oneofs = g, this.extensions = g, this.reserved = g, this.group = g, this.c = null, this.i = null, this.a = null, this.l = null } function r(t) { return t.c = t.i = t.a = null, delete t.encode, delete t.decode, delete t.verify, t } Object.defineProperties(w.prototype, { fieldsById: { get: function () { if (!this.c) { this.c = {}; for (var t = Object.keys(this.fields), i = 0; i < t.length; ++i) { var n = this.fields[t[i]], r = n.id; if (this.c[r]) throw Error("duplicate id " + r + " in " + this); this.c[r] = n } } return this.c } }, fieldsArray: { get: function () { return this.i || (this.i = d.toArray(this.fields)) } }, oneofsArray: { get: function () { return this.a || (this.a = d.toArray(this.oneofs)) } }, ctor: { get: function () { return this.l || (this.ctor = w.generateConstructor(this)()) }, set: function (t) { for (var i = t.prototype, n = (i instanceof e || ((t.prototype = new e).constructor = t, d.merge(t.prototype, i)), t.$type = t.prototype.$type = this, d.merge(t, e, !0), this.l = t, 0); n < this.fieldsArray.length; ++n) this.i[n].resolve(); for (var r = {}, n = 0; n < this.oneofsArray.length; ++n) r[this.a[n].resolve().name] = { get: d.oneOfGetter(this.a[n].oneof), set: d.oneOfSetter(this.a[n].oneof) }; n && Object.defineProperties(t.prototype, r) } } }), w.generateConstructor = function (t) { for (var i, n = d.codegen(["p"], t.name), r = 0; r < t.fieldsArray.length; ++r) (i = t.i[r]).map ? n("this%s={}", d.safeProp(i.name)) : i.repeated && n("this%s=[]", d.safeProp(i.name)); return n("if(p)for(var ks=Object.keys(p),i=0;i>> 0, this.hi = i >>> 0 } var s = e.zero = new e(0, 0), u = (s.toNumber = function () { return 0 }, s.zzEncode = s.zzDecode = function () { return this }, s.length = function () { return 1 }, e.zeroHash = "\0\0\0\0\0\0\0\0", e.fromNumber = function (t) { var i, n; return 0 === t ? s : (n = (t = (i = t < 0) ? -t : t) >>> 0, t = (t - n) / 4294967296 >>> 0, i && (t = ~t >>> 0, n = ~n >>> 0, 4294967295 < ++n && (n = 0, 4294967295 < ++t && (t = 0))), new e(n, t)) }, e.from = function (t) { if ("number" == typeof t) return e.fromNumber(t); if (r.isString(t)) { if (!r.Long) return e.fromNumber(parseInt(t, 10)); t = r.Long.fromString(t) } return t.low || t.high ? new e(t.low >>> 0, t.high >>> 0) : s }, e.prototype.toNumber = function (t) { var i; return !t && this.hi >>> 31 ? (t = 1 + ~this.lo >>> 0, i = ~this.hi >>> 0, -(t + 4294967296 * (i = t ? i : i + 1 >>> 0))) : this.lo + 4294967296 * this.hi }, e.prototype.toLong = function (t) { return r.Long ? new r.Long(0 | this.lo, 0 | this.hi, !!t) : { low: 0 | this.lo, high: 0 | this.hi, unsigned: !!t } }, String.prototype.charCodeAt); e.fromHash = function (t) { return "\0\0\0\0\0\0\0\0" === t ? s : new e((u.call(t, 0) | u.call(t, 1) << 8 | u.call(t, 2) << 16 | u.call(t, 3) << 24) >>> 0, (u.call(t, 4) | u.call(t, 5) << 8 | u.call(t, 6) << 16 | u.call(t, 7) << 24) >>> 0) }, e.prototype.toHash = function () { return String.fromCharCode(255 & this.lo, this.lo >>> 8 & 255, this.lo >>> 16 & 255, this.lo >>> 24, 255 & this.hi, this.hi >>> 8 & 255, this.hi >>> 16 & 255, this.hi >>> 24) }, e.prototype.zzEncode = function () { var t = this.hi >> 31; return this.hi = ((this.hi << 1 | this.lo >>> 31) ^ t) >>> 0, this.lo = (this.lo << 1 ^ t) >>> 0, this }, e.prototype.zzDecode = function () { var t = -(1 & this.lo); return this.lo = ((this.lo >>> 1 | this.hi << 31) ^ t) >>> 0, this.hi = (this.hi >>> 1 ^ t) >>> 0, this }, e.prototype.length = function () { var t = this.lo, i = (this.lo >>> 28 | this.hi << 4) >>> 0, n = this.hi >>> 24; return 0 == n ? 0 == i ? t < 16384 ? t < 128 ? 1 : 2 : t < 2097152 ? 3 : 4 : i < 16384 ? i < 128 ? 5 : 6 : i < 2097152 ? 7 : 8 : n < 128 ? 9 : 10 } }, {35: 35}], 35: [function (t, i, n) { var r = n; function e(t, i, n) { for (var r = Object.keys(i), e = 0; e < r.length; ++e) t[r[e]] !== g && n || (t[r[e]] = i[r[e]]); return t } function s(t) { function n(t, i) { if (!(this instanceof n)) return new n(t, i); Object.defineProperty(this, "message", { get: function () { return t } }), Error.captureStackTrace ? Error.captureStackTrace(this, n) : Object.defineProperty(this, "stack", {value: Error().stack || ""}), i && e(this, i) } return n.prototype = Object.create(Error.prototype, { constructor: { value: n, writable: !0, enumerable: !1, configurable: !0 }, name: { get() { return t }, set: g, enumerable: !1, configurable: !0 }, toString: { value() { return this.name + ": " + this.message }, writable: !0, enumerable: !1, configurable: !0 } }), n } r.asPromise = t(1), r.base64 = t(2), r.EventEmitter = t(4), r.float = t(6), r.inquire = t(7), r.utf8 = t(10), r.pool = t(9), r.LongBits = t(34), r.isNode = !!("undefined" != typeof global && global && global.process && global.process.versions && global.process.versions.node), r.global = r.isNode && global || "undefined" != typeof window && window || "undefined" != typeof self && self || this, r.emptyArray = Object.freeze ? Object.freeze([]) : [], r.emptyObject = Object.freeze ? Object.freeze({}) : {}, r.isInteger = Number.isInteger || function (t) { return "number" == typeof t && isFinite(t) && Math.floor(t) === t }, r.isString = function (t) { return "string" == typeof t || t instanceof String }, r.isObject = function (t) { return t && "object" == typeof t }, r.isset = r.isSet = function (t, i) { var n = t[i]; return null != n && t.hasOwnProperty(i) && ("object" != typeof n || 0 < (Array.isArray(n) ? n : Object.keys(n)).length) }, r.Buffer = function () { try { var t = r.inquire("buffer").Buffer; return t.prototype.utf8Write ? t : null } catch (t) { return null } }(), r.v = null, r.b = null, r.newBuffer = function (t) { return "number" == typeof t ? r.Buffer ? r.b(t) : new r.Array(t) : r.Buffer ? r.v(t) : "undefined" == typeof Uint8Array ? t : new Uint8Array(t) }, r.Array = "undefined" != typeof Uint8Array ? Uint8Array : Array, r.Long = r.global.dcodeIO && r.global.dcodeIO.Long || r.global.Long || r.inquire("long"), r.key2Re = /^true|false|0|1$/, r.key32Re = /^-?(?:0|[1-9][0-9]*)$/, r.key64Re = /^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/, r.longToHash = function (t) { return t ? r.LongBits.from(t).toHash() : r.LongBits.zeroHash }, r.longFromHash = function (t, i) { t = r.LongBits.fromHash(t); return r.Long ? r.Long.fromBits(t.lo, t.hi, i) : t.toNumber(!!i) }, r.merge = e, r.lcFirst = function (t) { return (t[0] || "").toLowerCase() + t.substring(1) }, r.newError = s, r.ProtocolError = s("ProtocolError"), r.oneOfGetter = function (t) { for (var n = {}, i = 0; i < t.length; ++i) n[t[i]] = 1; return function () { for (var t = Object.keys(this), i = t.length - 1; -1 < i; --i) if (1 === n[t[i]] && this[t[i]] !== g && null !== this[t[i]]) return t[i] } }, r.oneOfSetter = function (n) { return function (t) { for (var i = 0; i < n.length; ++i) n[i] !== t && delete this[n[i]] } }, r.toJSONOptions = {longs: String, enums: String, bytes: String, json: !0}, r.r = function () { var n = r.Buffer; n ? (r.v = n.from !== Uint8Array.from && n.from || function (t, i) { return new n(t, i) }, r.b = n.allocUnsafe || function (t) { return new n(t) }) : r.v = r.b = null } }, {1: 1, 10: 10, 2: 2, 34: 34, 4: 4, 6: 6, 7: 7, 9: 9}], 36: [function (t, i, n) { i.exports = function (t) { var i = h.codegen(["m"], t.name + "$verify")('if(typeof m!=="object"||m===null)')("return%j", "object expected"), n = t.oneofsArray, r = {}; n.length && i("var p={}"); for (var e = 0; e < t.fieldsArray.length; ++e) { var s, u = t.i[e].resolve(), o = "m" + h.safeProp(u.name); u.optional && i("if(%s!=null&&m.hasOwnProperty(%j)){", o, u.name), u.map ? (i("if(!util.isObject(%s))", o)("return%j", f(u, "object"))("var k=Object.keys(%s)", o)("for(var i=0;i>> 7 | t.hi << 25) >>> 0, t.hi >>>= 7; for (; 127 < t.lo;) i[n++] = 127 & t.lo | 128, t.lo = t.lo >>> 7; i[n++] = t.lo } function p(t, i, n) { i[n] = 255 & t, i[n + 1] = t >>> 8 & 255, i[n + 2] = t >>> 16 & 255, i[n + 3] = t >>> 24 } a.create = l(), a.alloc = function (t) { return new e.Array(t) }, e.Array !== Array && (a.alloc = e.pool(a.alloc, e.Array.prototype.subarray)), a.prototype.p = function (t, i, n) { return this.tail = this.tail.next = new h(t, i, n), this.len += i, this }, (v.prototype = Object.create(h.prototype)).fn = function (t, i, n) { for (; 127 < t;) i[n++] = 127 & t | 128, t >>>= 7; i[n] = t }, a.prototype.uint32 = function (t) { return this.len += (this.tail = this.tail.next = new v((t >>>= 0) < 128 ? 1 : t < 16384 ? 2 : t < 2097152 ? 3 : t < 268435456 ? 4 : 5, t)).len, this }, a.prototype.int32 = function (t) { return t < 0 ? this.p(b, 10, s.fromNumber(t)) : this.uint32(t) }, a.prototype.sint32 = function (t) { return this.uint32((t << 1 ^ t >> 31) >>> 0) }, a.prototype.int64 = a.prototype.uint64 = function (t) { t = s.from(t); return this.p(b, t.length(), t) }, a.prototype.sint64 = function (t) { t = s.from(t).zzEncode(); return this.p(b, t.length(), t) }, a.prototype.bool = function (t) { return this.p(d, 1, t ? 1 : 0) }, a.prototype.sfixed32 = a.prototype.fixed32 = function (t) { return this.p(p, 4, t >>> 0) }, a.prototype.sfixed64 = a.prototype.fixed64 = function (t) { t = s.from(t); return this.p(p, 4, t.lo).p(p, 4, t.hi) }, a.prototype.float = function (t) { return this.p(e.float.writeFloatLE, 4, t) }, a.prototype.double = function (t) { return this.p(e.float.writeDoubleLE, 8, t) }; var y = e.Array.prototype.set ? function (t, i, n) { i.set(t, n) } : function (t, i, n) { for (var r = 0; r < t.length; ++r) i[n + r] = t[r] }; a.prototype.bytes = function (t) { var i, n = t.length >>> 0; return n ? (e.isString(t) && (i = a.alloc(n = u.length(t)), u.decode(t, i, 0), t = i), this.uint32(n).p(y, n, t)) : this.p(d, 1, 0) }, a.prototype.string = function (t) { var i = o.length(t); return i ? this.uint32(i).p(o.write, i, t) : this.p(d, 1, 0) }, a.prototype.fork = function () { return this.states = new c(this), this.head = this.tail = new h(f, 0, 0), this.len = 0, this }, a.prototype.reset = function () { return this.states ? (this.head = this.states.head, this.tail = this.states.tail, this.len = this.states.len, this.states = this.states.next) : (this.head = this.tail = new h(f, 0, 0), this.len = 0), this }, a.prototype.ldelim = function () { var t = this.head, i = this.tail, n = this.len; return this.reset().uint32(n), n && (this.tail.next = t.next, this.tail = i, this.len += n), this }, a.prototype.finish = function () { for (var t = this.head.next, i = this.constructor.alloc(this.len), n = 0; t;) t.fn(t.val, i, n), n += t.len, t = t.next; return i }, a.r = function (t) { r = t, a.create = l(), r.r() } }, {35: 35}], 39: [function (t, i, n) { i.exports = s; var r = t(38), e = ((s.prototype = Object.create(r.prototype)).constructor = s, t(35)); function s() { r.call(this) } function u(t, i, n) { t.length < 40 ? e.utf8.write(t, i, n) : i.utf8Write ? i.utf8Write(t, n) : i.write(t, n) } s.r = function () { s.alloc = e.b, s.writeBytesBuffer = e.Buffer && e.Buffer.prototype instanceof Uint8Array && "set" === e.Buffer.prototype.set.name ? function (t, i, n) { i.set(t, n) } : function (t, i, n) { if (t.copy) t.copy(i, n, 0, t.length); else for (var r = 0; r < t.length;) i[n++] = t[r++] } }, s.prototype.bytes = function (t) { var i = (t = e.isString(t) ? e.v(t, "base64") : t).length >>> 0; return this.uint32(i), i && this.p(s.writeBytesBuffer, i, t), this }, s.prototype.string = function (t) { var i = e.Buffer.byteLength(t); return this.uint32(i), i && this.p(u, i, t), this }, s.r() }, {35: 35, 38: 38}] }, {}, [16]) }(); // https://github.com/emn178/js-md5 做了修改 let md5 = null; (function () { 'use strict'; var ERROR = 'input is invalid type'; var WINDOW = typeof window === 'object'; var root = WINDOW ? window : {}; if (root.JS_MD5_NO_WINDOW) { WINDOW = false } var WEB_WORKER = !WINDOW && typeof self === 'object'; var NODE_JS = !root.JS_MD5_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node; if (NODE_JS) { root = global } else if (WEB_WORKER) { root = self } var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && typeof module === 'object' && module.exports; var AMD = typeof define === 'function' && define.amd; var ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined'; var HEX_CHARS = '0123456789abcdef'.split(''); var EXTRA = [128, 32768, 8388608, -2147483648]; var SHIFT = [0, 8, 16, 24]; var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer', 'arrayBuffer', 'base64']; var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); var blocks = [], buffer8; if (ARRAY_BUFFER) { var buffer = new ArrayBuffer(68); buffer8 = new Uint8Array(buffer); blocks = new Uint32Array(buffer) } if (root.JS_MD5_NO_NODE_JS || !Array.isArray) { Array.isArray = function (obj) { return Object.prototype.toString.call(obj) === '[object Array]' } } if (ARRAY_BUFFER && (root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) { ArrayBuffer.isView = function (obj) { return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer } } var createOutputMethod = function (outputType) { return function (message) { return new Md5(true).update(message)[outputType]() } }; var createMethod = function () { var method = createOutputMethod('hex'); if (NODE_JS) { method = nodeWrap(method) } method.create = function () { return new Md5() }; method.update = function (message) { return method.create().update(message) }; for (var i = 0; i < OUTPUT_TYPES.length; ++i) { var type = OUTPUT_TYPES[i]; method[type] = createOutputMethod(type) } return method }; var nodeWrap = function (method) { var crypto = eval("require('crypto')"); var Buffer = eval("require('buffer').Buffer"); var nodeMethod = function (message) { if (typeof message === 'string') { return crypto.createHash('md5').update(message, 'utf8').digest('hex') } else { if (message === null || message === undefined) { throw ERROR; } else if (message.constructor === ArrayBuffer) { message = new Uint8Array(message) } } if (Array.isArray(message) || ArrayBuffer.isView(message) || message.constructor === Buffer) { return crypto.createHash('md5').update(new Buffer(message)).digest('hex') } else { return method(message) } }; return nodeMethod }; function Md5(sharedMemory) { if (sharedMemory) { blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0; this.blocks = blocks; this.buffer8 = buffer8 } else { if (ARRAY_BUFFER) { var buffer = new ArrayBuffer(68); this.buffer8 = new Uint8Array(buffer); this.blocks = new Uint32Array(buffer) } else { this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] } } this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0; this.finalized = this.hashed = false; this.first = true } Md5.prototype.update = function (message) { if (this.finalized) { return } var notString, type = typeof message; if (type !== 'string') { if (type === 'object') { if (message === null) { throw ERROR; } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) { message = new Uint8Array(message) } else if (!Array.isArray(message)) { if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) { throw ERROR; } } } else { throw ERROR; } notString = true } var code, index = 0, i, length = message.length, blocks = this.blocks; var buffer8 = this.buffer8; while (index < length) { if (this.hashed) { this.hashed = false; blocks[0] = blocks[16]; blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0 } if (notString) { if (ARRAY_BUFFER) { for (i = this.start; index < length && i < 64; ++index) { buffer8[i++] = message[index] } } else { for (i = this.start; index < length && i < 64; ++index) { blocks[i >> 2] |= message[index] << SHIFT[i++ & 3] } } } else { if (ARRAY_BUFFER) { for (i = this.start; index < length && i < 64; ++index) { code = message.charCodeAt(index); if (code < 0x80) { buffer8[i++] = code } else if (code < 0x800) { buffer8[i++] = 0xc0 | (code >> 6); buffer8[i++] = 0x80 | (code & 0x3f) } else if (code < 0xd800 || code >= 0xe000) { buffer8[i++] = 0xe0 | (code >> 12); buffer8[i++] = 0x80 | ((code >> 6) & 0x3f); buffer8[i++] = 0x80 | (code & 0x3f) } else { code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff)); buffer8[i++] = 0xf0 | (code >> 18); buffer8[i++] = 0x80 | ((code >> 12) & 0x3f); buffer8[i++] = 0x80 | ((code >> 6) & 0x3f); buffer8[i++] = 0x80 | (code & 0x3f) } } } else { for (i = this.start; index < length && i < 64; ++index) { code = message.charCodeAt(index); if (code < 0x80) { blocks[i >> 2] |= code << SHIFT[i++ & 3] } else if (code < 0x800) { blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3]; blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3] } else if (code < 0xd800 || code >= 0xe000) { blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3]; blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3]; blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3] } else { code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff)); blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3]; blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3]; blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3]; blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3] } } } } this.lastByteIndex = i; this.bytes += i - this.start; if (i >= 64) { this.start = i - 64; this.hash(); this.hashed = true } else { this.start = i } } if (this.bytes > 4294967295) { this.hBytes += this.bytes / 4294967296 << 0; this.bytes = this.bytes % 4294967296 } return this }; Md5.prototype.finalize = function () { if (this.finalized) { return } this.finalized = true; var blocks = this.blocks, i = this.lastByteIndex; blocks[i >> 2] |= EXTRA[i & 3]; if (i >= 56) { if (!this.hashed) { this.hash() } blocks[0] = blocks[16]; blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0 } blocks[14] = this.bytes << 3; blocks[15] = this.hBytes << 3 | this.bytes >>> 29; this.hash() }; Md5.prototype.hash = function () { var a, b, c, d, bc, da, blocks = this.blocks; if (this.first) { a = blocks[0] - 680876937; a = (a << 7 | a >>> 25) - 271733879 << 0; d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708; d = (d << 12 | d >>> 20) + a << 0; c = (-271733879 ^ (d & (a ^ -271733879))) + blocks[2] - 1126478375; c = (c << 17 | c >>> 15) + d << 0; b = (a ^ (c & (d ^ a))) + blocks[3] - 1316259209; b = (b << 22 | b >>> 10) + c << 0 } else { a = this.h0; b = this.h1; c = this.h2; d = this.h3; a += (d ^ (b & (c ^ d))) + blocks[0] - 680876936; a = (a << 7 | a >>> 25) + b << 0; d += (c ^ (a & (b ^ c))) + blocks[1] - 389564586; d = (d << 12 | d >>> 20) + a << 0; c += (b ^ (d & (a ^ b))) + blocks[2] + 606105819; c = (c << 17 | c >>> 15) + d << 0; b += (a ^ (c & (d ^ a))) + blocks[3] - 1044525330; b = (b << 22 | b >>> 10) + c << 0 } a += (d ^ (b & (c ^ d))) + blocks[4] - 176418897; a = (a << 7 | a >>> 25) + b << 0; d += (c ^ (a & (b ^ c))) + blocks[5] + 1200080426; d = (d << 12 | d >>> 20) + a << 0; c += (b ^ (d & (a ^ b))) + blocks[6] - 1473231341; c = (c << 17 | c >>> 15) + d << 0; b += (a ^ (c & (d ^ a))) + blocks[7] - 45705983; b = (b << 22 | b >>> 10) + c << 0; a += (d ^ (b & (c ^ d))) + blocks[8] + 1770035416; a = (a << 7 | a >>> 25) + b << 0; d += (c ^ (a & (b ^ c))) + blocks[9] - 1958414417; d = (d << 12 | d >>> 20) + a << 0; c += (b ^ (d & (a ^ b))) + blocks[10] - 42063; c = (c << 17 | c >>> 15) + d << 0; b += (a ^ (c & (d ^ a))) + blocks[11] - 1990404162; b = (b << 22 | b >>> 10) + c << 0; a += (d ^ (b & (c ^ d))) + blocks[12] + 1804603682; a = (a << 7 | a >>> 25) + b << 0; d += (c ^ (a & (b ^ c))) + blocks[13] - 40341101; d = (d << 12 | d >>> 20) + a << 0; c += (b ^ (d & (a ^ b))) + blocks[14] - 1502002290; c = (c << 17 | c >>> 15) + d << 0; b += (a ^ (c & (d ^ a))) + blocks[15] + 1236535329; b = (b << 22 | b >>> 10) + c << 0; a += (c ^ (d & (b ^ c))) + blocks[1] - 165796510; a = (a << 5 | a >>> 27) + b << 0; d += (b ^ (c & (a ^ b))) + blocks[6] - 1069501632; d = (d << 9 | d >>> 23) + a << 0; c += (a ^ (b & (d ^ a))) + blocks[11] + 643717713; c = (c << 14 | c >>> 18) + d << 0; b += (d ^ (a & (c ^ d))) + blocks[0] - 373897302; b = (b << 20 | b >>> 12) + c << 0; a += (c ^ (d & (b ^ c))) + blocks[5] - 701558691; a = (a << 5 | a >>> 27) + b << 0; d += (b ^ (c & (a ^ b))) + blocks[10] + 38016083; d = (d << 9 | d >>> 23) + a << 0; c += (a ^ (b & (d ^ a))) + blocks[15] - 660478335; c = (c << 14 | c >>> 18) + d << 0; b += (d ^ (a & (c ^ d))) + blocks[4] - 405537848; b = (b << 20 | b >>> 12) + c << 0; a += (c ^ (d & (b ^ c))) + blocks[9] + 568446438; a = (a << 5 | a >>> 27) + b << 0; d += (b ^ (c & (a ^ b))) + blocks[14] - 1019803690; d = (d << 9 | d >>> 23) + a << 0; c += (a ^ (b & (d ^ a))) + blocks[3] - 187363961; c = (c << 14 | c >>> 18) + d << 0; b += (d ^ (a & (c ^ d))) + blocks[8] + 1163531501; b = (b << 20 | b >>> 12) + c << 0; a += (c ^ (d & (b ^ c))) + blocks[13] - 1444681467; a = (a << 5 | a >>> 27) + b << 0; d += (b ^ (c & (a ^ b))) + blocks[2] - 51403784; d = (d << 9 | d >>> 23) + a << 0; c += (a ^ (b & (d ^ a))) + blocks[7] + 1735328473; c = (c << 14 | c >>> 18) + d << 0; b += (d ^ (a & (c ^ d))) + blocks[12] - 1926607734; b = (b << 20 | b >>> 12) + c << 0; bc = b ^ c; a += (bc ^ d) + blocks[5] - 378558; a = (a << 4 | a >>> 28) + b << 0; d += (bc ^ a) + blocks[8] - 2022574463; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; c += (da ^ b) + blocks[11] + 1839030562; c = (c << 16 | c >>> 16) + d << 0; b += (da ^ c) + blocks[14] - 35309556; b = (b << 23 | b >>> 9) + c << 0; bc = b ^ c; a += (bc ^ d) + blocks[1] - 1530992060; a = (a << 4 | a >>> 28) + b << 0; d += (bc ^ a) + blocks[4] + 1272893353; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; c += (da ^ b) + blocks[7] - 155497632; c = (c << 16 | c >>> 16) + d << 0; b += (da ^ c) + blocks[10] - 1094730640; b = (b << 23 | b >>> 9) + c << 0; bc = b ^ c; a += (bc ^ d) + blocks[13] + 681279174; a = (a << 4 | a >>> 28) + b << 0; d += (bc ^ a) + blocks[0] - 358537222; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; c += (da ^ b) + blocks[3] - 722521979; c = (c << 16 | c >>> 16) + d << 0; b += (da ^ c) + blocks[6] + 76029189; b = (b << 23 | b >>> 9) + c << 0; bc = b ^ c; a += (bc ^ d) + blocks[9] - 640364487; a = (a << 4 | a >>> 28) + b << 0; d += (bc ^ a) + blocks[12] - 421815835; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; c += (da ^ b) + blocks[15] + 530742520; c = (c << 16 | c >>> 16) + d << 0; b += (da ^ c) + blocks[2] - 995338651; b = (b << 23 | b >>> 9) + c << 0; a += (c ^ (b | ~d)) + blocks[0] - 198630844; a = (a << 6 | a >>> 26) + b << 0; d += (b ^ (a | ~c)) + blocks[7] + 1126891415; d = (d << 10 | d >>> 22) + a << 0; c += (a ^ (d | ~b)) + blocks[14] - 1416354905; c = (c << 15 | c >>> 17) + d << 0; b += (d ^ (c | ~a)) + blocks[5] - 57434055; b = (b << 21 | b >>> 11) + c << 0; a += (c ^ (b | ~d)) + blocks[12] + 1700485571; a = (a << 6 | a >>> 26) + b << 0; d += (b ^ (a | ~c)) + blocks[3] - 1894986606; d = (d << 10 | d >>> 22) + a << 0; c += (a ^ (d | ~b)) + blocks[10] - 1051523; c = (c << 15 | c >>> 17) + d << 0; b += (d ^ (c | ~a)) + blocks[1] - 2054922799; b = (b << 21 | b >>> 11) + c << 0; a += (c ^ (b | ~d)) + blocks[8] + 1873313359; a = (a << 6 | a >>> 26) + b << 0; d += (b ^ (a | ~c)) + blocks[15] - 30611744; d = (d << 10 | d >>> 22) + a << 0; c += (a ^ (d | ~b)) + blocks[6] - 1560198380; c = (c << 15 | c >>> 17) + d << 0; b += (d ^ (c | ~a)) + blocks[13] + 1309151649; b = (b << 21 | b >>> 11) + c << 0; a += (c ^ (b | ~d)) + blocks[4] - 145523070; a = (a << 6 | a >>> 26) + b << 0; d += (b ^ (a | ~c)) + blocks[11] - 1120210379; d = (d << 10 | d >>> 22) + a << 0; c += (a ^ (d | ~b)) + blocks[2] + 718787259; c = (c << 15 | c >>> 17) + d << 0; b += (d ^ (c | ~a)) + blocks[9] - 343485551; b = (b << 21 | b >>> 11) + c << 0; if (this.first) { this.h0 = a + 1732584193 << 0; this.h1 = b - 271733879 << 0; this.h2 = c - 1732584194 << 0; this.h3 = d + 271733878 << 0; this.first = false } else { this.h0 = this.h0 + a << 0; this.h1 = this.h1 + b << 0; this.h2 = this.h2 + c << 0; this.h3 = this.h3 + d << 0 } }; Md5.prototype.hex = function () { this.finalize(); var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3; return HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] + HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] + HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] + HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] + HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] + HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] + HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] + HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] + HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] + HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] + HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] + HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] + HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] + HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] + HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] + HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] }; Md5.prototype.toString = Md5.prototype.hex; Md5.prototype.digest = function () { this.finalize(); var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3; return [h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 24) & 0xFF, h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 24) & 0xFF, h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 24) & 0xFF, h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 24) & 0xFF] }; Md5.prototype.array = Md5.prototype.digest; Md5.prototype.arrayBuffer = function () { this.finalize(); var buffer = new ArrayBuffer(16); var blocks = new Uint32Array(buffer); blocks[0] = this.h0; blocks[1] = this.h1; blocks[2] = this.h2; blocks[3] = this.h3; return buffer }; Md5.prototype.buffer = Md5.prototype.arrayBuffer; Md5.prototype.base64 = function () { var v1, v2, v3, base64Str = '', bytes = this.array(); for (var i = 0; i < 15;) { v1 = bytes[i++]; v2 = bytes[i++]; v3 = bytes[i++]; base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] + BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] + BASE64_ENCODE_CHAR[v3 & 63] } v1 = bytes[i]; base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4) & 63] + '=='; return base64Str }; var exports = createMethod(); if (COMMON_JS) { module.exports = exports } else { root.md5 = exports; md5 = exports; if (AMD) { define(function () { return exports }) } } })(); const baiduMapJson = { "options": {"java_package": "com.smile.baidumap.model"}, "nested": { "RepHead": { "fields": { "md5": {"type": "string", "id": 1}, "range": {"type": "string", "id": 2}, "messageHead": {"rule": "repeated", "type": "MessageHead", "id": 3} } }, "MessageHead": { "fields": { "offset": {"type": "int32", "id": 1}, "length": {"type": "int32", "id": 2}, "name": {"type": "string", "id": 3} } }, "Result": {"fields": {"type": {"type": "int32", "id": 1}, "error": {"type": "int32", "id": 2}}}, "Ads": { "fields": { "option": {"type": "Option", "id": 1}, "content": {"rule": "repeated", "type": "Content", "id": 2} } }, "Option": { "fields": { "lasttime": {"type": "int32", "id": 1}, "checkcode": {"type": "string", "id": 2}, "errmsg": {"type": "string", "id": 3} } }, "Content": { "fields": { "type": {"type": "string", "id": 1}, "data": {"type": "string", "id": 2}, "intval": {"type": "int32", "id": 3}, "start": {"type": "int32", "id": 4}, "end": {"type": "int32", "id": 5}, "id": {"type": "int32", "id": 6}, "updatetime": {"type": "int32", "id": 7}, "order": {"type": "int32", "id": 8}, "ctrlMode": {"type": "string", "id": 9}, "dayTimes": {"type": "int32", "id": 10} } } } }; const baiduMapRoot = protobuf.Root.fromJSON(baiduMapJson); const isQuanX = typeof $task != "undefined"; const binaryBody = isQuanX ? new Uint8Array($response.bodyBytes) : $response.body; //console.log(`原始数据总长度:${binaryBody.byteLength}`); const beginOffset = 4; const prefixLength = new DataView(binaryBody.slice(0, beginOffset).buffer).getInt32(0); //console.log(`前缀给定的RepHead长度:${prefixLength}`); // 解析RepHead const repHeadData = binaryBody.slice(beginOffset, beginOffset + prefixLength); const repHeadType = baiduMapRoot.lookupType("RepHead"); const repHeadMessage = repHeadType.decode(repHeadData); const originMd5 = repHeadMessage.md5; //console.log(`解析出的原始repHead长度:${repHeadType.encode(repHeadMessage).finish().length}`); //console.log("repHead:" + JSON.stringify(repHeadMessage)); let newResult = null; let newAds = null; const dataBeginOffset = beginOffset + prefixLength; for (let i = 0; i < repHeadMessage.messageHead.length; i++) { let messageHead = repHeadMessage.messageHead[i]; const name = messageHead.name; const targetDataLength = messageHead.length; //console.log("messageHead:" + JSON.stringify(messageHead)); // 开始解析 Result和Ads const currentOffset = dataBeginOffset + messageHead.offset; //console.log(`开始解析${name}数据,起始offset:${currentOffset},读取长度为:${targetDataLength}`); const targetData = binaryBody.slice(currentOffset, currentOffset + targetDataLength); if (name === 'Result') { // Result我们无需修改 const resultType = baiduMapRoot.lookupType(name); const resultMessage = resultType.decode(targetData); const parseMd5 = md5(binaryBody.slice(currentOffset)); console.log(`解析出的md5和原始md5相同?:${parseMd5 === originMd5}`); newResult = resultType.encode(resultMessage).finish(); //console.log(`解析出的Result:${JSON.stringify(resultMessage)}`); } else if (name === 'Ads') { // 对Ads进行修改 const adsType = baiduMapRoot.lookupType(name); let adsMessage = adsType.decode(targetData); for (let j = 0; j < adsMessage.content.length; j++) { let item = adsMessage.content[j]; if ((item.type.indexOf('_banner') !== -1 || item.type.indexOf('splash_screen1040') !== -1) && item.hasOwnProperty('start') && item.hasOwnProperty('end')) { adsMessage.content[j].start = 1648746061; adsMessage.content[j].end = 1648832461; console.log(`设置${item.type}时间为过期`); } } newAds = adsType.encode(adsMessage).finish(); } } // 生成新RepHead const mergeResultAndAds = Uint8Array.from([...newResult, ...newAds]); const newMd5 = md5(mergeResultAndAds); console.log(`新md5:${newMd5}`); repHeadMessage.md5 = newMd5; repHeadMessage.messageHead[0].length = newResult.byteLength; // Ads的offset为Result的偏移量+ Result的长度 repHeadMessage.messageHead[1].offset = newResult.byteLength; repHeadMessage.messageHead[1].length = newAds.byteLength; const newRepHead = repHeadType.encode(repHeadMessage).finish(); const totalLength = beginOffset + newRepHead.byteLength + newResult.byteLength + newAds.byteLength; //console.log(`totalLength:${totalLength}`); let body = new Uint8Array(totalLength); body.set(Uint8Array.from([(newRepHead.byteLength >> 24) & 0xff, (newRepHead.byteLength >> 16) & 0xff, (newRepHead.byteLength >> 8) & 0xff, newRepHead.byteLength & 0xff])); body.set(newRepHead, beginOffset); body.set(newResult, beginOffset + newRepHead.byteLength); body.set(newAds, beginOffset + newRepHead.byteLength + newResult.byteLength); console.log(`${body.byteLength}---${body.buffer.byteLength}`); if (isQuanX) { $done({bodyBytes: body.buffer.slice(body.byteOffset, body.byteLength + body.byteOffset)}); } else { $done({body}); }