window = this; navigator = { appName : "Netscape", userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36' } !function(t, e) { if ("object" == typeof exports && "object" == typeof module) module.exports = e(); else if ("function" == typeof define && define.amd) define([], e); else { var r, i = e(); for (r in i) ("object" == typeof exports ? exports : t)[r] = i[r] } }(this, (function() { var t = { 77: function(t, e) { (function() { function e(t, e, r) { null != t && ("number" == typeof t ? this.fromNumber(t, e, r) : null == e && "string" != typeof t ? this.fromString(t, 256) : this.fromString(t, e)) } function r() { return new e(null) } var i = (i = "undefined" != typeof navigator) && "Microsoft Internet Explorer" == navigator.appName ? (e.prototype.am = function(t, e, r, i, n, o) { for (var s = 32767 & e, h = e >> 15; 0 <= --o; ) { var u = 32767 & this[t] , a = this[t++] >> 15 , c = h * u + a * s; n = ((u = s * u + ((32767 & c) << 15) + r[i] + (1073741823 & n)) >>> 30) + (c >>> 15) + h * a + (n >>> 30), r[i++] = 1073741823 & u } return n } , 30) : i && "Netscape" != navigator.appName ? (e.prototype.am = function(t, e, r, i, n, o) { for (; 0 <= --o; ) { var s = e * this[t++] + r[i] + n; n = Math.floor(s / 67108864), r[i++] = 67108863 & s } return n } , 26) : (e.prototype.am = function(t, e, r, i, n, o) { for (var s = 16383 & e, h = e >> 14; 0 <= --o; ) { var u = 16383 & this[t] , a = this[t++] >> 14 , c = h * u + a * s; n = ((u = s * u + ((16383 & c) << 14) + r[i] + n) >> 28) + (c >> 14) + h * a, r[i++] = 268435455 & u } return n } , 28); e.prototype.DB = i, e.prototype.DM = (1 << i) - 1, e.prototype.DV = 1 << i, e.prototype.FV = Math.pow(2, 52), e.prototype.F1 = 52 - i, e.prototype.F2 = 2 * i - 52; for (var n = new Array, o = "0".charCodeAt(0), s = 0; s <= 9; ++s) n[o++] = s; for (o = "a".charCodeAt(0), s = 10; s < 36; ++s) n[o++] = s; for (o = "A".charCodeAt(0), s = 10; s < 36; ++s) n[o++] = s; function h(t) { return "0123456789abcdefghijklmnopqrstuvwxyz".charAt(t) } function u(t, e) { return null == (e = n[t.charCodeAt(e)]) ? -1 : e } function a(t) { var e = r(); return e.fromInt(t), e } function c(t) { var e, r = 1; return 0 != (e = t >>> 16) && (t = e, r += 16), 0 != (e = t >> 8) && (t = e, r += 8), 0 != (e = t >> 4) && (t = e, r += 4), 0 != (e = t >> 2) && (t = e, r += 2), 0 != (e = t >> 1) && (t = e, r += 1), r } function f(t) { this.m = t } function p(t) { this.m = t, this.mp = t.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << t.DB - 15) - 1, this.mt2 = 2 * t.t } function l(t, e) { return t & e } function y(t, e) { return t | e } function d(t, e) { return t ^ e } function m(t, e) { return t & ~e } function v() {} function g(t) { return t } function b(t) { this.r2 = r(), this.q3 = r(), e.ONE.dlShiftTo(2 * t.t, this.r2), this.mu = this.r2.divide(t), this.m = t } f.prototype.convert = function(t) { return t.s < 0 || 0 <= t.compareTo(this.m) ? t.mod(this.m) : t } , f.prototype.revert = function(t) { return t } , f.prototype.reduce = function(t) { t.divRemTo(this.m, null, t) } , f.prototype.mulTo = function(t, e, r) { t.multiplyTo(e, r), this.reduce(r) } , f.prototype.sqrTo = function(t, e) { t.squareTo(e), this.reduce(e) } , p.prototype.convert = function(t) { var i = r(); return t.abs().dlShiftTo(this.m.t, i), i.divRemTo(this.m, null, i), t.s < 0 && 0 < i.compareTo(e.ZERO) && this.m.subTo(i, i), i } , p.prototype.revert = function(t) { var e = r(); return t.copyTo(e), this.reduce(e), e } , p.prototype.reduce = function(t) { for (; t.t <= this.mt2; ) t[t.t++] = 0; for (var e = 0; e < this.m.t; ++e) { var r = 32767 & t[e] , i = r * this.mpl + ((r * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM; for (t[r = e + this.m.t] += this.m.am(0, i, t, e, 0, this.m.t); t[r] >= t.DV; ) t[r] -= t.DV, t[++r]++ } t.clamp(), t.drShiftTo(this.m.t, t), 0 <= t.compareTo(this.m) && t.subTo(this.m, t) } , p.prototype.mulTo = function(t, e, r) { t.multiplyTo(e, r), this.reduce(r) } , p.prototype.sqrTo = function(t, e) { t.squareTo(e), this.reduce(e) } , e.prototype.copyTo = function(t) { for (var e = this.t - 1; 0 <= e; --e) t[e] = this[e]; t.t = this.t, t.s = this.s } , e.prototype.fromInt = function(t) { this.t = 1, this.s = t < 0 ? -1 : 0, 0 < t ? this[0] = t : t < -1 ? this[0] = t + this.DV : this.t = 0 } , e.prototype.fromString = function(t, r) { var i; if (16 == r) i = 4; else if (8 == r) i = 3; else if (256 == r) i = 8; else if (2 == r) i = 1; else if (32 == r) i = 5; else { if (4 != r) return void this.fromRadix(t, r); i = 2 } this.t = 0, this.s = 0; for (var n = t.length, o = !1, s = 0; 0 <= --n; ) { var h = 8 == i ? 255 & t[n] : u(t, n); h < 0 ? "-" == t.charAt(n) && (o = !0) : (o = !1, 0 == s ? this[this.t++] = h : s + i > this.DB ? (this[this.t - 1] |= (h & (1 << this.DB - s) - 1) << s, this[this.t++] = h >> this.DB - s) : this[this.t - 1] |= h << s, (s += i) >= this.DB && (s -= this.DB)) } 8 == i && 0 != (128 & t[0]) && (this.s = -1, 0 < s && (this[this.t - 1] |= (1 << this.DB - s) - 1 << s)), this.clamp(), o && e.ZERO.subTo(this, this) } , e.prototype.clamp = function() { for (var t = this.s & this.DM; 0 < this.t && this[this.t - 1] == t; ) --this.t } , e.prototype.dlShiftTo = function(t, e) { for (var r = this.t - 1; 0 <= r; --r) e[r + t] = this[r]; for (r = t - 1; 0 <= r; --r) e[r] = 0; e.t = this.t + t, e.s = this.s } , e.prototype.drShiftTo = function(t, e) { for (var r = t; r < this.t; ++r) e[r - t] = this[r]; e.t = Math.max(this.t - t, 0), e.s = this.s } , e.prototype.lShiftTo = function(t, e) { for (var r = t % this.DB, i = this.DB - r, n = (1 << i) - 1, o = Math.floor(t / this.DB), s = this.s << r & this.DM, h = this.t - 1; 0 <= h; --h) e[h + o + 1] = this[h] >> i | s, s = (this[h] & n) << r; for (h = o - 1; 0 <= h; --h) e[h] = 0; e[o] = s, e.t = this.t + o + 1, e.s = this.s, e.clamp() } , e.prototype.rShiftTo = function(t, e) { e.s = this.s; var r = Math.floor(t / this.DB); if (r >= this.t) e.t = 0; else { var i = t % this.DB , n = this.DB - i , o = (1 << i) - 1; e[0] = this[r] >> i; for (var s = r + 1; s < this.t; ++s) e[s - r - 1] |= (this[s] & o) << n, e[s - r] = this[s] >> i; 0 < i && (e[this.t - r - 1] |= (this.s & o) << n), e.t = this.t - r, e.clamp() } } , e.prototype.subTo = function(t, e) { for (var r = 0, i = 0, n = Math.min(t.t, this.t); r < n; ) i += this[r] - t[r], e[r++] = i & this.DM, i >>= this.DB; if (t.t < this.t) { for (i -= t.s; r < this.t; ) i += this[r], e[r++] = i & this.DM, i >>= this.DB; i += this.s } else { for (i += this.s; r < t.t; ) i -= t[r], e[r++] = i & this.DM, i >>= this.DB; i -= t.s } e.s = i < 0 ? -1 : 0, i < -1 ? e[r++] = this.DV + i : 0 < i && (e[r++] = i), e.t = r, e.clamp() } , e.prototype.multiplyTo = function(t, r) { var i = this.abs() , n = t.abs() , o = i.t; for (r.t = o + n.t; 0 <= --o; ) r[o] = 0; for (o = 0; o < n.t; ++o) r[o + i.t] = i.am(0, n[o], r, o, 0, i.t); r.s = 0, r.clamp(), this.s != t.s && e.ZERO.subTo(r, r) } , e.prototype.squareTo = function(t) { for (var e = this.abs(), r = t.t = 2 * e.t; 0 <= --r; ) t[r] = 0; for (r = 0; r < e.t - 1; ++r) { var i = e.am(r, e[r], t, 2 * r, 0, 1); (t[r + e.t] += e.am(r + 1, 2 * e[r], t, 2 * r + 1, i, e.t - r - 1)) >= e.DV && (t[r + e.t] -= e.DV, t[r + e.t + 1] = 1) } 0 < t.t && (t[t.t - 1] += e.am(r, e[r], t, 2 * r, 0, 1)), t.s = 0, t.clamp() } , e.prototype.divRemTo = function(t, i, n) { var o = t.abs(); if (!(o.t <= 0)) { if ((p = this.abs()).t < o.t) return null != i && i.fromInt(0), void (null != n && this.copyTo(n)); null == n && (n = r()); var s = r() , h = this.s , u = t.s; 0 < (t = this.DB - c(o[o.t - 1])) ? (o.lShiftTo(t, s), p.lShiftTo(t, n)) : (o.copyTo(s), p.copyTo(n)); var a = s.t , f = s[a - 1]; if (0 != f) { var p = f * (1 << this.F1) + (1 < a ? s[a - 2] >> this.F2 : 0) , l = this.FV / p , y = (1 << this.F1) / p , d = 1 << this.F2 , m = n.t , v = m - a , g = null == i ? r() : i; for (s.dlShiftTo(v, g), 0 <= n.compareTo(g) && (n[n.t++] = 1, n.subTo(g, n)), e.ONE.dlShiftTo(a, g), g.subTo(s, s); s.t < a; ) s[s.t++] = 0; for (; 0 <= --v; ) { var b = n[--m] == f ? this.DM : Math.floor(n[m] * l + (n[m - 1] + d) * y); if ((n[m] += s.am(0, b, n, v, 0, a)) < b) for (s.dlShiftTo(v, g), n.subTo(g, n); n[m] < --b; ) n.subTo(g, n) } null != i && (n.drShiftTo(a, i), h != u && e.ZERO.subTo(i, i)), n.t = a, n.clamp(), 0 < t && n.rShiftTo(t, n), h < 0 && e.ZERO.subTo(n, n) } } } , e.prototype.invDigit = function() { if (this.t < 1) return 0; var t = this[0]; if (0 == (1 & t)) return 0; var e = 3 & t; return 0 < (e = (e = (e = (e = e * (2 - (15 & t) * e) & 15) * (2 - (255 & t) * e) & 255) * (2 - ((65535 & t) * e & 65535)) & 65535) * (2 - t * e % this.DV) % this.DV) ? this.DV - e : -e } , e.prototype.isEven = function() { return 0 == (0 < this.t ? 1 & this[0] : this.s) } , e.prototype.exp = function(t, i) { if (4294967295 < t || t < 1) return e.ONE; var n, o = r(), s = r(), h = i.convert(this), u = c(t) - 1; for (h.copyTo(o); 0 <= --u; ) i.sqrTo(o, s), 0 < (t & 1 << u) ? i.mulTo(s, h, o) : (n = o, o = s, s = n); return i.revert(o) } , e.prototype.toString = function(t) { if (this.s < 0) return "-" + this.negate().toString(t); var e; if (16 == t) e = 4; else if (8 == t) e = 3; else if (2 == t) e = 1; else if (32 == t) e = 5; else { if (4 != t) return this.toRadix(t); e = 2 } var r, i = (1 << e) - 1, n = !1, o = "", s = this.t, u = this.DB - s * this.DB % e; if (0 < s--) for (u < this.DB && 0 < (r = this[s] >> u) && (n = !0, o = h(r)); 0 <= s; ) u < e ? (r = (this[s] & (1 << u) - 1) << e - u, r |= this[--s] >> (u += this.DB - e)) : (r = this[s] >> (u -= e) & i, u <= 0 && (u += this.DB, --s)), (n = 0 < r || n) && (o += h(r)); return n ? o : "0" } , e.prototype.negate = function() { var t = r(); return e.ZERO.subTo(this, t), t } , e.prototype.abs = function() { return this.s < 0 ? this.negate() : this } , e.prototype.compareTo = function(t) { var e = this.s - t.s; if (0 != e) return e; var r = this.t; if (0 != (e = r - t.t)) return this.s < 0 ? -e : e; for (; 0 <= --r; ) if (0 != (e = this[r] - t[r])) return e; return 0 } , e.prototype.bitLength = function() { return this.t <= 0 ? 0 : this.DB * (this.t - 1) + c(this[this.t - 1] ^ this.s & this.DM) } , e.prototype.mod = function(t) { var i = r(); return this.abs().divRemTo(t, null, i), this.s < 0 && 0 < i.compareTo(e.ZERO) && t.subTo(i, i), i } , e.prototype.modPowInt = function(t, e) { return e = new (t < 256 || e.isEven() ? f : p)(e), this.exp(t, e) } , e.ZERO = a(0), e.ONE = a(1), v.prototype.convert = g, v.prototype.revert = g, v.prototype.mulTo = function(t, e, r) { t.multiplyTo(e, r) } , v.prototype.sqrTo = function(t, e) { t.squareTo(e) } , b.prototype.convert = function(t) { if (t.s < 0 || t.t > 2 * this.m.t) return t.mod(this.m); if (t.compareTo(this.m) < 0) return t; var e = r(); return t.copyTo(e), this.reduce(e), e } , b.prototype.revert = function(t) { return t } , b.prototype.reduce = function(t) { for (t.drShiftTo(this.m.t - 1, this.r2), t.t > this.m.t + 1 && (t.t = this.m.t + 1, t.clamp()), this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3), this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); t.compareTo(this.r2) < 0; ) t.dAddOffset(1, this.m.t + 1); for (t.subTo(this.r2, t); 0 <= t.compareTo(this.m); ) t.subTo(this.m, t) } , b.prototype.mulTo = function(t, e, r) { t.multiplyTo(e, r), this.reduce(r) } , b.prototype.sqrTo = function(t, e) { t.squareTo(e), this.reduce(e) } ; var T, w = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997], F = (1 << 26) / w[w.length - 1]; function S() { var t; t = (new Date).getTime(), x[B++] ^= 255 & t, x[B++] ^= t >> 8 & 255, x[B++] ^= t >> 16 & 255, x[B++] ^= t >> 24 & 255, O <= B && (B -= O) } e.prototype.chunkSize = function(t) { return Math.floor(Math.LN2 * this.DB / Math.log(t)) } , e.prototype.toRadix = function(t) { if (null == t && (t = 10), 0 == this.signum() || t < 2 || 36 < t) return "0"; var e = this.chunkSize(t) , i = Math.pow(t, e) , n = a(i) , o = r() , s = r() , h = ""; for (this.divRemTo(n, o, s); 0 < o.signum(); ) h = (i + s.intValue()).toString(t).substr(1) + h, o.divRemTo(n, o, s); return s.intValue().toString(t) + h } , e.prototype.fromRadix = function(t, r) { this.fromInt(0); for (var i = this.chunkSize(r = null == r ? 10 : r), n = Math.pow(r, i), o = !1, s = 0, h = 0, a = 0; a < t.length; ++a) { var c = u(t, a); c < 0 ? "-" == t.charAt(a) && 0 == this.signum() && (o = !0) : (h = r * h + c, ++s >= i && (this.dMultiply(n), this.dAddOffset(h, 0), h = s = 0)) } 0 < s && (this.dMultiply(Math.pow(r, s)), this.dAddOffset(h, 0)), o && e.ZERO.subTo(this, this) } , e.prototype.fromNumber = function(t, r, i) { if ("number" == typeof r) if (t < 2) this.fromInt(1); else for (this.fromNumber(t, i), this.testBit(t - 1) || this.bitwiseTo(e.ONE.shiftLeft(t - 1), y, this), this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(r); ) this.dAddOffset(2, 0), this.bitLength() > t && this.subTo(e.ONE.shiftLeft(t - 1), this); else { var n = new Array; i = 7 & t, n.length = 1 + (t >> 3), r.nextBytes(n), 0 < i ? n[0] &= (1 << i) - 1 : n[0] = 0, this.fromString(n, 256) } } , e.prototype.bitwiseTo = function(t, e, r) { for (var i, n = Math.min(t.t, this.t), o = 0; o < n; ++o) r[o] = e(this[o], t[o]); if (t.t < this.t) { for (i = t.s & this.DM, o = n; o < this.t; ++o) r[o] = e(this[o], i); r.t = this.t } else { for (i = this.s & this.DM, o = n; o < t.t; ++o) r[o] = e(i, t[o]); r.t = t.t } r.s = e(this.s, t.s), r.clamp() } , e.prototype.changeBit = function(t, r) { return t = e.ONE.shiftLeft(t), this.bitwiseTo(t, r, t), t } , e.prototype.addTo = function(t, e) { for (var r = 0, i = 0, n = Math.min(t.t, this.t); r < n; ) i += this[r] + t[r], e[r++] = i & this.DM, i >>= this.DB; if (t.t < this.t) { for (i += t.s; r < this.t; ) i += this[r], e[r++] = i & this.DM, i >>= this.DB; i += this.s } else { for (i += this.s; r < t.t; ) i += t[r], e[r++] = i & this.DM, i >>= this.DB; i += t.s } e.s = i < 0 ? -1 : 0, 0 < i ? e[r++] = i : i < -1 && (e[r++] = this.DV + i), e.t = r, e.clamp() } , e.prototype.dMultiply = function(t) { this[this.t] = this.am(0, t - 1, this, 0, 0, this.t), ++this.t, this.clamp() } , e.prototype.dAddOffset = function(t, e) { if (0 != t) { for (; this.t <= e; ) this[this.t++] = 0; for (this[e] += t; this[e] >= this.DV; ) this[e] -= this.DV, ++e >= this.t && (this[this.t++] = 0), ++this[e] } } , e.prototype.multiplyLowerTo = function(t, e, r) { var i, n = Math.min(this.t + t.t, e); for (r.s = 0, r.t = n; 0 < n; ) r[--n] = 0; for (i = r.t - this.t; n < i; ++n) r[n + this.t] = this.am(0, t[n], r, n, 0, this.t); for (i = Math.min(t.t, e); n < i; ++n) this.am(0, t[n], r, n, 0, e - n); r.clamp() } , e.prototype.multiplyUpperTo = function(t, e, r) { var i = r.t = this.t + t.t - --e; for (r.s = 0; 0 <= --i; ) r[i] = 0; for (i = Math.max(e - this.t, 0); i < t.t; ++i) r[this.t + i - e] = this.am(e - i, t[i], r, 0, 0, this.t + i - e); r.clamp(), r.drShiftTo(1, r) } , e.prototype.modInt = function(t) { if (t <= 0) return 0; var e = this.DV % t , r = this.s < 0 ? t - 1 : 0; if (0 < this.t) if (0 == e) r = this[0] % t; else for (var i = this.t - 1; 0 <= i; --i) r = (e * r + this[i]) % t; return r } , e.prototype.millerRabin = function(t) { var i = this.subtract(e.ONE) , n = i.getLowestSetBit(); if (n <= 0) return !1; var o = i.shiftRight(n); w.length < (t = t + 1 >> 1) && (t = w.length); for (var s = r(), h = 0; h < t; ++h) { s.fromInt(w[Math.floor(Math.random() * w.length)]); var u = s.modPow(o, this); if (0 != u.compareTo(e.ONE) && 0 != u.compareTo(i)) { for (var a = 1; a++ < n && 0 != u.compareTo(i); ) if (0 == (u = u.modPowInt(2, this)).compareTo(e.ONE)) return !1; if (0 != u.compareTo(i)) return !1 } } return !0 } , e.prototype.clone = function() { var t = r(); return this.copyTo(t), t } , e.prototype.intValue = function() { if (this.s < 0) { if (1 == this.t) return this[0] - this.DV; if (0 == this.t) return -1 } else { if (1 == this.t) return this[0]; if (0 == this.t) return 0 } return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0] } , e.prototype.byteValue = function() { return 0 == this.t ? this.s : this[0] << 24 >> 24 } , e.prototype.shortValue = function() { return 0 == this.t ? this.s : this[0] << 16 >> 16 } , e.prototype.signum = function() { return this.s < 0 ? -1 : this.t <= 0 || 1 == this.t && this[0] <= 0 ? 0 : 1 } , e.prototype.toByteArray = function() { var t = this.t , e = new Array; e[0] = this.s; var r, i = this.DB - t * this.DB % 8, n = 0; if (0 < t--) for (i < this.DB && (r = this[t] >> i) != (this.s & this.DM) >> i && (e[n++] = r | this.s << this.DB - i); 0 <= t; ) i < 8 ? (r = (this[t] & (1 << i) - 1) << 8 - i, r |= this[--t] >> (i += this.DB - 8)) : (r = this[t] >> (i -= 8) & 255, i <= 0 && (i += this.DB, --t)), 0 != (128 & r) && (r |= -256), 0 == n && (128 & this.s) != (128 & r) && ++n, (0 < n || r != this.s) && (e[n++] = r); return e } , e.prototype.equals = function(t) { return 0 == this.compareTo(t) } , e.prototype.min = function(t) { return this.compareTo(t) < 0 ? this : t } , e.prototype.max = function(t) { return 0 < this.compareTo(t) ? this : t } , e.prototype.and = function(t) { var e = r(); return this.bitwiseTo(t, l, e), e } , e.prototype.or = function(t) { var e = r(); return this.bitwiseTo(t, y, e), e } , e.prototype.xor = function(t) { var e = r(); return this.bitwiseTo(t, d, e), e } , e.prototype.andNot = function(t) { var e = r(); return this.bitwiseTo(t, m, e), e } , e.prototype.not = function() { for (var t = r(), e = 0; e < this.t; ++e) t[e] = this.DM & ~this[e]; return t.t = this.t, t.s = ~this.s, t } , e.prototype.shiftLeft = function(t) { var e = r(); return t < 0 ? this.rShiftTo(-t, e) : this.lShiftTo(t, e), e } , e.prototype.shiftRight = function(t) { var e = r(); return t < 0 ? this.lShiftTo(-t, e) : this.rShiftTo(t, e), e } , e.prototype.getLowestSetBit = function() { for (var t = 0; t < this.t; ++t) if (0 != this[t]) return t * this.DB + function(t) { if (0 == t) return -1; var e = 0; return 0 == (65535 & t) && (t >>= 16, e += 16), 0 == (255 & t) && (t >>= 8, e += 8), 0 == (15 & t) && (t >>= 4, e += 4), 0 == (3 & t) && (t >>= 2, e += 2), 0 == (1 & t) && ++e, e }(this[t]); return this.s < 0 ? this.t * this.DB : -1 } , e.prototype.bitCount = function() { for (var t = 0, e = this.s & this.DM, r = 0; r < this.t; ++r) t += function(t) { for (var e = 0; 0 != t; ) t &= t - 1, ++e; return e }(this[r] ^ e); return t } , e.prototype.testBit = function(t) { var e = Math.floor(t / this.DB); return e >= this.t ? 0 != this.s : 0 != (this[e] & 1 << t % this.DB) } , e.prototype.setBit = function(t) { return this.changeBit(t, y) } , e.prototype.clearBit = function(t) { return this.changeBit(t, m) } , e.prototype.flipBit = function(t) { return this.changeBit(t, d) } , e.prototype.add = function(t) { var e = r(); return this.addTo(t, e), e } , e.prototype.subtract = function(t) { var e = r(); return this.subTo(t, e), e } , e.prototype.multiply = function(t) { var e = r(); return this.multiplyTo(t, e), e } , e.prototype.divide = function(t) { var e = r(); return this.divRemTo(t, e, null), e } , e.prototype.remainder = function(t) { var e = r(); return this.divRemTo(t, null, e), e } , e.prototype.divideAndRemainder = function(t) { var e = r() , i = r(); return this.divRemTo(t, e, i), new Array(e,i) } , e.prototype.modPow = function(t, e) { var i = t.bitLength() , n = a(1); if (i <= 0) return n; var o = i < 18 ? 1 : i < 48 ? 3 : i < 144 ? 4 : i < 768 ? 5 : 6 , s = new (i < 8 ? f : e.isEven() ? b : p)(e) , h = new Array , u = 3 , l = o - 1 , y = (1 << o) - 1; if (h[1] = s.convert(this), 1 < o) { var d = r(); for (s.sqrTo(h[1], d); u <= y; ) h[u] = r(), s.mulTo(d, h[u - 2], h[u]), u += 2 } var m, v, g = t.t - 1, T = !0, w = r(); for (i = c(t[g]) - 1; 0 <= g; ) { for (l <= i ? m = t[g] >> i - l & y : (m = (t[g] & (1 << i + 1) - 1) << l - i, 0 < g && (m |= t[g - 1] >> this.DB + i - l)), u = o; 0 == (1 & m); ) m >>= 1, --u; if ((i -= u) < 0 && (i += this.DB, --g), T) h[m].copyTo(n), T = !1; else { for (; 1 < u; ) s.sqrTo(n, w), s.sqrTo(w, n), u -= 2; 0 < u ? s.sqrTo(n, w) : (v = n, n = w, w = v), s.mulTo(w, h[m], n) } for (; 0 <= g && 0 == (t[g] & 1 << i); ) s.sqrTo(n, w), v = n, n = w, w = v, --i < 0 && (i = this.DB - 1, --g) } return s.revert(n) } , e.prototype.modInverse = function(t) { var r = t.isEven(); if (this.isEven() && r || 0 == t.signum()) return e.ZERO; for (var i = t.clone(), n = this.clone(), o = a(1), s = a(0), h = a(0), u = a(1); 0 != i.signum(); ) { for (; i.isEven(); ) i.rShiftTo(1, i), r ? (o.isEven() && s.isEven() || (o.addTo(this, o), s.subTo(t, s)), o.rShiftTo(1, o)) : s.isEven() || s.subTo(t, s), s.rShiftTo(1, s); for (; n.isEven(); ) n.rShiftTo(1, n), r ? (h.isEven() && u.isEven() || (h.addTo(this, h), u.subTo(t, u)), h.rShiftTo(1, h)) : u.isEven() || u.subTo(t, u), u.rShiftTo(1, u); 0 <= i.compareTo(n) ? (i.subTo(n, i), r && o.subTo(h, o), s.subTo(u, s)) : (n.subTo(i, n), r && h.subTo(o, h), u.subTo(s, u)) } return 0 != n.compareTo(e.ONE) ? e.ZERO : 0 <= u.compareTo(t) ? u.subtract(t) : u.signum() < 0 ? (u.addTo(t, u), u.signum() < 0 ? u.add(t) : u) : u } , e.prototype.pow = function(t) { return this.exp(t, new v) } , e.prototype.gcd = function(t) { var e = this.s < 0 ? this.negate() : this.clone() , r = t.s < 0 ? t.negate() : t.clone(); e.compareTo(r) < 0 && (n = e, e = r, r = n); var i = e.getLowestSetBit() , n = r.getLowestSetBit(); if (n < 0) return e; for (0 < (n = i < n ? i : n) && (e.rShiftTo(n, e), r.rShiftTo(n, r)); 0 < e.signum(); ) 0 < (i = e.getLowestSetBit()) && e.rShiftTo(i, e), 0 < (i = r.getLowestSetBit()) && r.rShiftTo(i, r), 0 <= e.compareTo(r) ? (e.subTo(r, e), e.rShiftTo(1, e)) : (r.subTo(e, r), r.rShiftTo(1, r)); return 0 < n && r.lShiftTo(n, r), r } , e.prototype.isProbablePrime = function(t) { var e, r = this.abs(); if (1 == r.t && r[0] <= w[w.length - 1]) { for (e = 0; e < w.length; ++e) if (r[0] == w[e]) return !0; return !1 } if (r.isEven()) return !1; for (e = 1; e < w.length; ) { for (var i = w[e], n = e + 1; n < w.length && i < F; ) i *= w[n++]; for (i = r.modInt(i); e < n; ) if (i % w[e++] == 0) return !1 } return r.millerRabin(t) } , e.prototype.square = function() { var t = r(); return this.squareTo(t), t } , e.prototype.Barrett = b; var x = new Array , B = 0; if ("undefined" != typeof window && window.crypto) if (window.crypto.getRandomValues) { var D = new Uint8Array(32); for (window.crypto.getRandomValues(D), A = 0; A < 32; ++A) x[B++] = D[A] } else if ("Netscape" == navigator.appName && navigator.appVersion < "5") for (var E = window.crypto.random(32), A = 0; A < E.length; ++A) x[B++] = 255 & E.charCodeAt(A); for (; B < O; ) A = Math.floor(65536 * Math.random()), x[B++] = A >>> 8, x[B++] = 255 & A; function I() { if (null == T) { for (S(), (T = new R).init(x), B = 0; B < x.length; ++B) x[B] = 0; B = 0 } return T.next() } function q() {} function R() { this.i = 0, this.j = 0, this.S = new Array } B = 0, S(), q.prototype.nextBytes = function(t) { for (var e = 0; e < t.length; ++e) t[e] = I() } , R.prototype.init = function(t) { for (var e, r, i = 0; i < 256; ++i) this.S[i] = i; for (i = e = 0; i < 256; ++i) e = e + this.S[i] + t[i % t.length] & 255, r = this.S[i], this.S[i] = this.S[e], this.S[e] = r; this.i = 0, this.j = 0 } , R.prototype.next = function() { var t; return this.i = this.i + 1 & 255, this.j = this.j + this.S[this.i] & 255, t = this.S[this.i], this.S[this.i] = this.S[this.j], this.S[this.j] = t, this.S[t + this.S[this.i] & 255] } ; var O = 256; t.exports = { default: e, BigInteger: e, SecureRandom: q } } ).call(this) }, 686: function(t, e, r) { function i(t) { if (o[t]) return o[t].exports; var e = o[t] = { i: t, l: !1, exports: {} }; return n[t].call(e.exports, e, e.exports, i), e.l = !0, e.exports } var n, o; t.exports = (o = {}, i.m = n = [function(t, e) { t.exports = r(77) } , function(t, e, r) { "use strict"; function i(t, e) { for (var r = [], i = ~~(e / 8), n = e % 8, o = 0, s = t.length; o < s; o++) r[o] = (t[(o + i) % s] << n & 255) + (t[(o + i + 1) % s] >>> 8 - n & 255); return r } function n(t, e) { for (var r = [], i = t.length - 1; 0 <= i; i--) r[i] = 255 & (t[i] ^ e[i]); return r } function o(t, e) { for (var r = [], i = t.length - 1; 0 <= i; i--) r[i] = t[i] & e[i] & 255; return r } function s(t, e) { for (var r = [], i = t.length - 1; 0 <= i; i--) r[i] = 255 & (t[i] | e[i]); return r } function h(t, e) { for (var r = [], i = 0, n = t.length - 1; 0 <= n; n--) { var o = t[n] + e[n] + i; i = 255 < o ? 1 : 0, r[n] = 255 & o } return r } function u(t, e, r, i) { return 0 <= i && i <= 15 ? n(n(t, e), r) : s(o(t, e), o(function(t) { for (var e = [], r = t.length - 1; 0 <= r; r--) e[r] = 255 & ~t[r]; return e }(t), r)) } function a(t, e) { for (var r = [], a = [], c = 0; c < 16; c++) { var f = 4 * c; r.push(e.slice(f, 4 + f)) } for (var p, l = 16; l < 68; l++) r.push(n(n((p = n(n(r[l - 16], r[l - 9]), i(r[l - 3], 15)), n(n(p, i(p, 15)), i(p, 23))), i(r[l - 13], 7)), r[l - 6])); for (var y = 0; y < 64; y++) a.push(n(r[y], r[y + 4])); for (var d, m, v = [121, 204, 69, 25], g = [122, 135, 157, 138], b = t.slice(0, 4), T = t.slice(4, 8), w = t.slice(8, 12), F = t.slice(12, 16), S = t.slice(16, 20), x = t.slice(20, 24), B = t.slice(24, 28), D = t.slice(28, 32), E = void 0, A = 0; A < 64; A++) { var I = 0 <= A && A <= 15 ? v : g , q = n(E = i(h(h(i(b, 12), S), i(I, A)), 7), i(b, 12)) , R = h(h(h((d = b, m = T, R = w, 0 <= (I = A) && I <= 15 ? n(n(d, m), R) : s(s(o(d, m), o(d, R)), o(m, R))), F), q), a[A]); q = h(h(h(u(S, x, B, A), D), E), r[A]), F = w, w = i(T, 9), T = b, b = R, D = B, B = i(x, 19), x = S, S = n(n(q = q, i(q, 9)), i(q, 17)) } return n([].concat(b, T, w, F, S, x, B, D), t) } t.exports = function(t) { for (var e = 448 <= (e = (h = 8 * t.length) % 512) ? 512 - e % 448 - 1 : 448 - e - 1, r = new Array((e - 7) / 8), i = 0, n = r.length; i < n; i++) r[i] = 0; for (var o, s = [], h = h.toString(2), u = 7; 0 <= u; u--) 8 < h.length ? (o = h.length - 8, s[u] = parseInt(h.substr(o), 2), h = h.substr(0, o)) : 0 < h.length ? (s[u] = parseInt(h, 2), h = "") : s[u] = 0; for (var c = [].concat(t, [128], r, s), f = c.length / 64, p = [115, 128, 22, 111, 73, 20, 178, 185, 23, 36, 66, 215, 218, 138, 6, 0, 169, 111, 48, 188, 22, 49, 56, 170, 227, 141, 238, 77, 176, 251, 14, 78], l = 0; l < f; l++) { var y = 64 * l; p = a(p, c.slice(y, 64 + y)) } return p } } , function(t, e, r) { "use strict"; t.exports = { sm2: r(3), sm3: r(7), sm4: r(8) } } , function(t, e, r) { "use strict"; var i = r(0).BigInteger , n = r(4) , o = n.encodeDer , s = n.decodeDer , h = r(5) , u = r(1) , a = (r = h.generateEcparam()).G , c = r.curve , f = r.n; function p(t, e, r) { var i = h.utf8ToHex(i = 2 < arguments.length && void 0 !== r ? r : "1234567812345678") , n = h.leftPad(a.curve.a.toBigInteger().toRadix(16), 64) , o = h.leftPad(a.curve.b.toBigInteger().toRadix(16), 64) , s = h.leftPad(a.getX().toBigInteger().toRadix(16), 64) , c = h.leftPad(a.getY().toBigInteger().toRadix(16), 64); return r = (e = 128 < e.length ? e.substr(2, 128) : e).substr(0, 64), e = e.substr(64, 64), e = h.hexToArray(i + n + o + s + c + r + e), i = 4 * i.length, e.unshift(255 & i), e.unshift(i >> 8 & 255), e = u(e), h.arrayToHex(u(e.concat(h.hexToArray(t)))) } function l() { var t = h.generateKeyPairHex() , e = c.decodePointHex(t.publicKey); return t.k = new i(t.privateKey,16), t.x1 = e.getX().toBigInteger(), t } t.exports = { generateKeyPairHex: h.generateKeyPairHex, doEncrypt: function(t, e) { var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1; t = h.hexToArray(h.utf8ToHex(t)), e = h.getGlobalCurve().decodePointHex(e); var n = h.generateKeyPairHex() , o = new i(n.privateKey,16) , s = n.publicKey; function a() { p = u([].concat(l, [c >> 24 & 255, c >> 16 & 255, c >> 8 & 255, 255 & c])), c++, f = 0 } 128 < s.length && (s = s.substr(s.length - 128)), n = e.multiply(o), e = h.hexToArray(h.leftPad(n.getX().toBigInteger().toRadix(16), 64)), o = h.hexToArray(h.leftPad(n.getY().toBigInteger().toRadix(16), 64)), n = h.arrayToHex(u([].concat(e, t, o))); var c = 1 , f = 0 , p = [] , l = [].concat(e, o); a(); for (var y = 0, d = t.length; y < d; y++) f === p.length && a(), t[y] ^= 255 & p[f++]; return o = h.arrayToHex(t), 0 === r ? s + o + n : s + n + o }, doDecrypt: function(t, e) { var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1; e = new i(e,16); var n = t.substr(128, 64) , o = t.substr(192); function s() { p = u([].concat(l, [c >> 24 & 255, c >> 16 & 255, c >> 8 & 255, 255 & c])), c++, f = 0 } 0 === r && (n = t.substr(t.length - 64), o = t.substr(128, t.length - 128 - 64)); var a = h.hexToArray(o) , c = (t = h.getGlobalCurve().decodePointHex("04" + t.substr(0, 128)).multiply(e), e = h.hexToArray(h.leftPad(t.getX().toBigInteger().toRadix(16), 64)), t = h.hexToArray(h.leftPad(t.getY().toBigInteger().toRadix(16), 64)), 1) , f = 0 , p = [] , l = [].concat(e, t); s(); for (var y = 0, d = a.length; y < d; y++) f === p.length && s(), a[y] ^= 255 & p[f++]; return h.arrayToHex(u([].concat(e, a, t))) === n ? h.arrayToUtf8(a) : "" }, doSignature: function(t, e) { var r = (c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}).pointPool , n = c.der , s = c.hash , u = c.publicKey , c = c.userId; t = "string" == typeof t ? h.utf8ToHex(t) : h.arrayToHex(t), s && (t = p(t, u || (s = e, u = a.multiply(new i(s,16)), "04" + (s = h.leftPad(u.getX().toBigInteger().toString(16), 64)) + (u = h.leftPad(u.getY().toBigInteger().toString(16), 64))), c)); var y = new i(e,16) , d = new i(t,16) , m = null , v = null , g = null; do { do { var b = void 0; m = (b = r && r.length ? r.pop() : l()).k, v = d.add(b.x1).mod(f) } while (v.equals(i.ZERO) || v.add(m).equals(f)) } while ((g = y.add(i.ONE).modInverse(f).multiply(m.subtract(v.multiply(y))).mod(f)).equals(i.ZERO)); return n ? o(v, g) : h.leftPad(v.toString(16), 64) + h.leftPad(g.toString(16), 64) }, doVerifySignature: function(t, e, r) { var n = (u = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : {}).der , o = u.hash , u = u.userId; return t = "string" == typeof t ? h.utf8ToHex(t) : h.arrayToHex(t), o && (t = p(t, r, u)), o = void 0, u = void 0, u = n ? (o = (n = s(e)).r, n.s) : (o = new i(e.substring(0, 64),16), new i(e.substring(64),16)), e = c.decodePointHex(r), r = new i(t,16), !(t = o.add(u).mod(f)).equals(i.ZERO) && (t = a.multiply(u).add(e.multiply(t)), t = r.add(t.getX().toBigInteger()).mod(f), o.equals(t)) }, getPoint: l, verifyPublicKey: h.verifyPublicKey } } , function(t, e, r) { "use strict"; function i(t, e) { if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !e || "object" != typeof e && "function" != typeof e ? t : e } function n(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e) } function o(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") } var s = r(0).BigInteger; function h() { o(this, h), this.tlv = null, this.t = "00", this.l = "00", this.v = "" } h.prototype.getEncodedHex = function() { return this.tlv || (this.v = this.getValue(), this.l = this.getLength(), this.tlv = this.t + this.l + this.v), this.tlv } , h.prototype.getLength = function() { var t = this.v.length / 2 , e = t.toString(16); return e.length % 2 == 1 && (e = "0" + e), t < 128 ? e : (128 + e.length / 2).toString(16) + e } , h.prototype.getValue = function() { return "" } ; var u, a = (n(c, u = r = h), c.prototype.getValue = function() { return this.v } , c); function c(t) { o(this, c); var e = i(this, u.call(this)); return e.t = "02", t && (e.v = function(t) { if ("-" !== (e = t.toString(16))[0]) e.length % 2 == 1 ? e = "0" + e : e.match(/^[0-7]/) || (e = "00" + e); else { var e, r = (e = e.substr(1)).length; r % 2 == 1 ? r += 1 : e.match(/^[0-7]/) || (r += 2); for (var i = "", n = 0; n < r; n++) i += "f"; e = (e = (i = new s(i,16)).xor(t).add(s.ONE)).toString(16).replace(/^-/, "") } return e }(t)), e } var f, p = (n(l, f = r), l.prototype.getValue = function() { return this.v = this.asn1Array.map((function(t) { return t.getEncodedHex() } )).join(""), this.v } , l); function l(t) { o(this, l); var e = i(this, f.call(this)); return e.t = "30", e.asn1Array = t, e } function y(t, e) { return +t[e + 2] < 8 ? 1 : 128 & +t.substr(e + 2, 2) } function d(t, e) { var r = y(t, e); return (r = t.substr(e + 2, 2 * r)) ? (+r[0] < 8 ? new s(r,16) : new s(r.substr(2),16)).intValue() : -1 } function m(t, e) { return e + 2 * (y(t, e) + 1) } t.exports = { encodeDer: function(t, e) { return t = new a(t), e = new a(e), new p([t, e]).getEncodedHex() }, decodeDer: function(t) { var e = m(t, 0) , r = m(t, e) , i = d(t, e); return e = t.substr(r, 2 * i), r = m(t, i = r + e.length), i = d(t, i), i = t.substr(r, 2 * i), { r: new s(e,16), s: new s(i,16) } } } } , function(t, e, r) { "use strict"; var i = (n = r(0)).BigInteger , n = n.SecureRandom , o = r(6).ECCurveFp , s = new n , h = (n = c()).curve , u = n.G , a = n.n; function c() { var t = new i("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF",16) , e = new i("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC",16) , r = new i("28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93",16); return r = (e = new o(t,e,r)).decodePointHex("0432C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0"), { curve: e, G: r, n: new i("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123",16) } } function f(t, e) { return t.length >= e ? t : new Array(e - t.length + 1).join("0") + t } t.exports = { getGlobalCurve: function() { return h }, generateEcparam: c, generateKeyPairHex: function(t, e, r) { return { privateKey: r = f((e = (t ? new i(t,e,r) : new i(a.bitLength(),s)).mod(a.subtract(i.ONE)).add(i.ONE)).toString(16), 64), publicKey: "04" + f((e = u.multiply(e)).getX().toBigInteger().toString(16), 64) + f(e.getY().toBigInteger().toString(16), 64) } }, utf8ToHex: function(t) { for (var e = (t = unescape(encodeURIComponent(t))).length, r = [], i = 0; i < e; i++) r[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; for (var n = [], o = 0; o < e; o++) { var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255; n.push((s >>> 4).toString(16)), n.push((15 & s).toString(16)) } return n.join("") }, leftPad: f, arrayToHex: function(t) { return t.map((function(t) { return 1 === (t = t.toString(16)).length ? "0" + t : t } )).join("") }, arrayToUtf8: function(t) { for (var e = [], r = 0, i = 0; i < 2 * t.length; i += 2) e[i >>> 3] |= parseInt(t[r], 10) << 24 - i % 8 * 4, r++; try { for (var n = [], o = 0; o < t.length; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; n.push(String.fromCharCode(s)) } return decodeURIComponent(escape(n.join(""))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, hexToArray: function(t) { for (var e = [], r = (t = (r = t.length) % 2 != 0 ? f(t, r + 1) : t).length, i = 0; i < r; i += 2) e.push(parseInt(t.substr(i, 2), 16)); return e }, verifyPublicKey: function(t) { var e = h.decodePointHex(t); return !!e && (t = e.getX(), e.getY().square().equals(t.multiply(t.square()).add(t.multiply(h.a)).add(h.b))) } } } , function(t, e, r) { "use strict"; function i(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") } var n = r(0).BigInteger , o = new n("3") , s = (h.prototype.equals = function(t) { return t === this || this.q.equals(t.q) && this.x.equals(t.x) } , h.prototype.toBigInteger = function() { return this.x } , h.prototype.negate = function() { return new h(this.q,this.x.negate().mod(this.q)) } , h.prototype.add = function(t) { return new h(this.q,this.x.add(t.toBigInteger()).mod(this.q)) } , h.prototype.subtract = function(t) { return new h(this.q,this.x.subtract(t.toBigInteger()).mod(this.q)) } , h.prototype.multiply = function(t) { return new h(this.q,this.x.multiply(t.toBigInteger()).mod(this.q)) } , h.prototype.divide = function(t) { return new h(this.q,this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q)) } , h.prototype.square = function() { return new h(this.q,this.x.square().mod(this.q)) } , h); function h(t, e) { i(this, h), this.x = e, this.q = t } var u = (a.prototype.getX = function() { return null === this.zinv && (this.zinv = this.z.modInverse(this.curve.q)), this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q)) } , a.prototype.getY = function() { return null === this.zinv && (this.zinv = this.z.modInverse(this.curve.q)), this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q)) } , a.prototype.equals = function(t) { return t === this || (this.isInfinity() ? t.isInfinity() : t.isInfinity() ? this.isInfinity() : !!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(n.ZERO) && t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(n.ZERO)) } , a.prototype.isInfinity = function() { return null === this.x && null === this.y || this.z.equals(n.ZERO) && !this.y.toBigInteger().equals(n.ZERO) } , a.prototype.negate = function() { return new a(this.curve,this.x,this.y.negate(),this.z) } , a.prototype.add = function(t) { if (this.isInfinity()) return t; if (t.isInfinity()) return this; var e = this.x.toBigInteger() , r = this.y.toBigInteger() , i = this.z , o = t.x.toBigInteger() , s = t.y.toBigInteger() , h = t.z , u = this.curve.q , c = e.multiply(h).mod(u); return t = o.multiply(i).mod(u), e = c.subtract(t), o = r.multiply(h).mod(u), r = s.multiply(i).mod(u), s = o.subtract(r), n.ZERO.equals(e) ? n.ZERO.equals(s) ? this.twice() : this.curve.infinity : (r = c.add(t), t = i.multiply(h).mod(u), i = e.square().mod(u), h = e.multiply(i).mod(u), r = t.multiply(s.square()).subtract(r.multiply(i)).mod(u), e = e.multiply(r).mod(u), o = s.multiply(i.multiply(c).subtract(r)).subtract(o.multiply(h)).mod(u), u = h.multiply(t).mod(u), new a(this.curve,this.curve.fromBigInteger(e),this.curve.fromBigInteger(o),u)) } , a.prototype.twice = function() { if (this.isInfinity()) return this; if (!this.y.toBigInteger().signum()) return this.curve.infinity; var t = this.x.toBigInteger() , e = this.y.toBigInteger() , r = this.z , i = this.curve.q , n = this.curve.a.toBigInteger() , s = t.square().multiply(o).add(n.multiply(r.square())).mod(i) , h = e.shiftLeft(1).multiply(r).mod(i) , u = (n = (u = e.square().mod(i)).multiply(t).multiply(r).mod(i), e = h.square().mod(i), t = s.square().subtract(n.shiftLeft(3)).mod(i), r = h.multiply(t).mod(i), s.multiply(n.shiftLeft(2).subtract(t)).subtract(e.shiftLeft(1).multiply(u)).mod(i)); return i = h.multiply(e).mod(i), new a(this.curve,this.curve.fromBigInteger(r),this.curve.fromBigInteger(u),i) } , a.prototype.multiply = function(t) { if (this.isInfinity()) return this; if (!t.signum()) return this.curve.infinity; for (var e = t.multiply(o), r = this.negate(), i = this, n = e.bitLength() - 2; 0 < n; n--) { i = i.twice(); var s = e.testBit(n); s !== t.testBit(n) && (i = i.add(s ? this : r)) } return i } , a); function a(t, e, r, o) { i(this, a), this.curve = t, this.x = e, this.y = r, this.z = null == o ? n.ONE : o, this.zinv = null } function c(t, e, r) { i(this, c), this.q = t, this.a = this.fromBigInteger(e), this.b = this.fromBigInteger(r), this.infinity = new u(this,null,null) } c.prototype.equals = function(t) { return t === this || this.q.equals(t.q) && this.a.equals(t.a) && this.b.equals(t.b) } , c.prototype.fromBigInteger = function(t) { return new s(this.q,t) } , c.prototype.decodePointHex = function(t) { switch (parseInt(t.substr(0, 2), 16)) { case 0: return this.infinity; default: return null; case 4: case 6: case 7: var e = (t.length - 2) / 2 , r = t.substr(2, e); return e = t.substr(2 + e, e), new u(this,this.fromBigInteger(new n(r,16)),this.fromBigInteger(new n(e,16))) } } , r = c, t.exports = { ECPointFp: u, ECCurveFp: r } } , function(t, e, r) { "use strict"; var i = r(1); t.exports = function(t) { return t = "string" == typeof t ? function(t) { for (var e = [], r = 0, i = t.length; r < i; r++) { var n = t.charCodeAt(r); if (n <= 127) e.push(n); else if (n <= 2047) e.push(192 | n >>> 6), e.push(128 | 63 & n); else if (n <= 55295 || 57344 <= n && n <= 65535) e.push(224 | n >>> 12), e.push(128 | n >>> 6 & 63), e.push(128 | 63 & n); else { if (!(65536 <= n && n <= 1114111)) throw e.push(n), new Error("input is not supported"); r++, e.push(240 | n >>> 18 & 28), e.push(128 | n >>> 12 & 63), e.push(128 | n >>> 6 & 63), e.push(128 | 63 & n) } } return e }(t) : Array.prototype.slice.call(t), i(t).map((function(t) { return 1 === (t = t.toString(16)).length ? "0" + t : t } )).join("") } } , function(t, e, r) { "use strict"; var i = [214, 144, 233, 254, 204, 225, 61, 183, 22, 182, 20, 194, 40, 251, 44, 5, 43, 103, 154, 118, 42, 190, 4, 195, 170, 68, 19, 38, 73, 134, 6, 153, 156, 66, 80, 244, 145, 239, 152, 122, 51, 84, 11, 67, 237, 207, 172, 98, 228, 179, 28, 169, 201, 8, 232, 149, 128, 223, 148, 250, 117, 143, 63, 166, 71, 7, 167, 252, 243, 115, 23, 186, 131, 89, 60, 25, 230, 133, 79, 168, 104, 107, 129, 178, 113, 100, 218, 139, 248, 235, 15, 75, 112, 86, 157, 53, 30, 36, 14, 94, 99, 88, 209, 162, 37, 34, 124, 59, 1, 33, 120, 135, 212, 0, 70, 87, 159, 211, 39, 82, 76, 54, 2, 231, 160, 196, 200, 158, 234, 191, 138, 210, 64, 199, 56, 181, 163, 247, 242, 206, 249, 97, 21, 161, 224, 174, 93, 164, 155, 52, 26, 85, 173, 147, 50, 48, 245, 140, 177, 227, 29, 246, 226, 46, 130, 102, 202, 96, 192, 41, 35, 171, 13, 83, 78, 111, 213, 219, 55, 69, 222, 253, 142, 47, 3, 255, 106, 114, 109, 108, 91, 81, 141, 27, 175, 146, 187, 221, 188, 127, 17, 217, 92, 65, 31, 16, 90, 216, 10, 193, 49, 136, 165, 205, 123, 189, 45, 116, 208, 18, 184, 229, 180, 176, 137, 105, 151, 74, 12, 150, 119, 126, 101, 185, 241, 9, 197, 110, 198, 132, 24, 240, 125, 236, 58, 220, 77, 32, 121, 238, 95, 62, 215, 203, 57, 72] , n = [462357, 472066609, 943670861, 1415275113, 1886879365, 2358483617, 2830087869, 3301692121, 3773296373, 4228057617, 404694573, 876298825, 1347903077, 1819507329, 2291111581, 2762715833, 3234320085, 3705924337, 4177462797, 337322537, 808926789, 1280531041, 1752135293, 2223739545, 2695343797, 3166948049, 3638552301, 4110090761, 269950501, 741554753, 1213159005, 1684763257]; function o(t) { for (var e = [], r = 0, i = t.length; r < i; r += 2) e.push(parseInt(t.substr(r, 2), 16)); return e } function s(t, e) { return t << e | t >>> 32 - e } function h(t) { return (255 & i[t >>> 24 & 255]) << 24 | (255 & i[t >>> 16 & 255]) << 16 | (255 & i[t >>> 8 & 255]) << 8 | 255 & i[255 & t] } function u(t) { return t ^ s(t, 2) ^ s(t, 10) ^ s(t, 18) ^ s(t, 24) } function a(t) { return t ^ s(t, 13) ^ s(t, 23) } function c(t, e, r, i) { i = void 0 === (c = (f = 3 < arguments.length && void 0 !== i ? i : {}).padding) ? "pkcs#5" : c; var s = f.mode , c = void 0 === (c = f.iv) ? [] : c , f = void 0 === (f = f.output) ? "string" : f; if ("cbc" === s && 16 !== (c = "string" == typeof c ? o(c) : c).length) throw new Error("iv is invalid"); if (16 !== (e = "string" == typeof e ? o(e) : e).length) throw new Error("key is invalid"); if (t = "string" == typeof t ? (0 !== r ? function(t) { for (var e = [], r = 0, i = t.length; r < i; r++) { var n = t.charCodeAt(r); if (n <= 127) e.push(n); else if (n <= 2047) e.push(192 | n >>> 6), e.push(128 | 63 & n); else if (n <= 55295 || 57344 <= n && n <= 65535) e.push(224 | n >>> 12), e.push(128 | n >>> 6 & 63), e.push(128 | 63 & n); else { if (!(65536 <= n && n <= 1114111)) throw e.push(n), new Error("input is not supported"); r++, e.push(240 | n >>> 18 & 28), e.push(128 | n >>> 12 & 63), e.push(128 | n >>> 6 & 63), e.push(128 | 63 & n) } } return e } : o)(t) : [].concat(t), "pkcs#5" === i && 0 !== r) for (var p = 16 - t.length % 16, l = 0; l < p; l++) t.push(p); var y = new Array(32); !function(t, e, r) { for (var i = new Array(4), o = new Array(4), s = 0; s < 4; s++) o[0] = 255 & t[0 + 4 * s], o[1] = 255 & t[1 + 4 * s], o[2] = 255 & t[2 + 4 * s], o[3] = 255 & t[3 + 4 * s], i[s] = o[0] << 24 | o[1] << 16 | o[2] << 8 | o[3]; i[0] ^= 2746333894, i[1] ^= 1453994832, i[2] ^= 1736282519, i[3] ^= 2993693404; for (var u, c = 0; c < 32; c += 4) u = i[1] ^ i[2] ^ i[3] ^ n[c + 0], e[c + 0] = i[0] ^= a(h(u)), u = i[2] ^ i[3] ^ i[0] ^ n[c + 1], e[c + 1] = i[1] ^= a(h(u)), u = i[3] ^ i[0] ^ i[1] ^ n[c + 2], e[c + 2] = i[2] ^= a(h(u)), u = i[0] ^ i[1] ^ i[2] ^ n[c + 3], e[c + 3] = i[3] ^= a(h(u)); if (0 === r) for (var f, p = 0; p < 16; p++) f = e[p], e[p] = e[31 - p], e[31 - p] = f }(e, y, r); for (var d = [], m = c, v = t.length, g = 0; 16 <= v; ) { var b = t.slice(g, g + 16) , T = new Array(16); if ("cbc" === s) for (var w = 0; w < 16; w++) 0 !== r && (b[w] ^= m[w]); !function(t, e, r) { for (var i = new Array(4), n = new Array(4), o = 0; o < 4; o++) n[0] = 255 & t[4 * o], n[1] = 255 & t[4 * o + 1], n[2] = 255 & t[4 * o + 2], n[3] = 255 & t[4 * o + 3], i[o] = n[0] << 24 | n[1] << 16 | n[2] << 8 | n[3]; for (var s, a = 0; a < 32; a += 4) s = i[1] ^ i[2] ^ i[3] ^ r[a + 0], i[0] ^= u(h(s)), s = i[2] ^ i[3] ^ i[0] ^ r[a + 1], i[1] ^= u(h(s)), s = i[3] ^ i[0] ^ i[1] ^ r[a + 2], i[2] ^= u(h(s)), s = i[0] ^ i[1] ^ i[2] ^ r[a + 3], i[3] ^= u(h(s)); for (var c = 0; c < 16; c += 4) e[c] = i[3 - c / 4] >>> 24 & 255, e[c + 1] = i[3 - c / 4] >>> 16 & 255, e[c + 2] = i[3 - c / 4] >>> 8 & 255, e[c + 3] = 255 & i[3 - c / 4] }(b, T, y); for (var F = 0; F < 16; F++) "cbc" === s && 0 === r && (T[F] ^= m[F]), d[g + F] = T[F]; "cbc" === s && (m = 0 !== r ? T : b), v -= 16, g += 16 } return "pkcs#5" === i && 0 === r && (i = d[d.length - 1], d.splice(d.length - i, i)), "array" !== f ? 0 !== r ? d.map((function(t) { return 1 === (t = t.toString(16)).length ? "0" + t : t } )).join("") : function(t) { for (var e = [], r = 0, i = t.length; r < i; r++) 240 <= t[r] && t[r] <= 247 ? (e.push(String.fromCharCode(((7 & t[r]) << 18) + ((63 & t[r + 1]) << 12) + ((63 & t[r + 2]) << 6) + (63 & t[r + 3]))), r += 3) : 224 <= t[r] && t[r] <= 239 ? (e.push(String.fromCharCode(((15 & t[r]) << 12) + ((63 & t[r + 1]) << 6) + (63 & t[r + 2]))), r += 2) : 192 <= t[r] && t[r] <= 223 ? (e.push(String.fromCharCode(((31 & t[r]) << 6) + (63 & t[r + 1]))), r++) : e.push(String.fromCharCode(t[r])); return e.join("") }(d) : d } t.exports = { encrypt: function(t, e, r) { return c(t, e, 1, r) }, decrypt: function(t, e, r) { return c(t, e, 0, r) } } } ], i.c = o, i.d = function(t, e, r) { i.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: r }) } , i.r = function(t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) } , i.t = function(t, e) { if (1 & e && (t = i(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var r = Object.create(null); if (i.r(r), Object.defineProperty(r, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var n in t) i.d(r, n, function(e) { return t[e] } .bind(null, n)); return r } , i.n = function(t) { var e = t && t.__esModule ? function() { return t.default } : function() { return t } ; return i.d(e, "a", e), e } , i.o = function(t, e) { return Object.prototype.hasOwnProperty.call(t, e) } , i.p = "", i(i.s = 2)) } } , e = {}; function r(i) { var n = e[i]; return void 0 !== n || (n = e[i] = { exports: {} }, t[i].call(n.exports, n, n.exports, r)), n.exports } r.d = function(t, e) { for (var i in e) r.o(e, i) && !r.o(t, i) && Object.defineProperty(t, i, { enumerable: !0, get: e[i] }) } , r.o = function(t, e) { return Object.prototype.hasOwnProperty.call(t, e) } , r.r = function(t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) } ; var i = {}; return function() { "use strict"; function t(t) { this.PromiseState = "pending", this.PromiseResult = null, this.callbacks = []; var e = this; function r(t) { "pending" === e.PromiseState && (e.PromiseResult = t, e.PromiseState = "rejected", e.callbacks.forEach((function(e) { e.onReject(t) } ))) } try { t((function(t) { "pending" == e.PromiseState && (e.PromiseState = "fulfilled", e.PromiseResult = t, e.callbacks.forEach((function(e) { e.onResolve(t) } ))) } ), r) } catch (t) { r(t) } } r.r(i), r.d(i, { SummerCryptico: function() { return c }, default: function() { return f } }); var e = r(686); function n(t, e) { var r, i = Object.keys(t); return Object.getOwnPropertySymbols && (r = Object.getOwnPropertySymbols(t), e && (r = r.filter((function(e) { return Object.getOwnPropertyDescriptor(t, e).enumerable } ))), i.push.apply(i, r)), i } function o(t) { for (var e = 1; e < arguments.length; e++) { var r = null != arguments[e] ? arguments[e] : {}; e % 2 ? n(Object(r), !0).forEach((function(e) { var i, n; i = t, e = r[n = e], n in i ? Object.defineProperty(i, n, { value: e, enumerable: !0, configurable: !0, writable: !0 }) : i[n] = e } )) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(r)) : n(Object(r)).forEach((function(e) { Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(r, e)) } )) } return t } t.prototype.then = function(e, r) { var i = this , n = this; return "function" != typeof r && (r = function(t) { throw t } ), "function" != typeof e && (e = function(t) { return t } ), new t((function(o, s) { function h(e) { try { var r = e(n.PromiseResult); r instanceof t ? r.then((function(t) { o(t) } ), (function(t) { s(t) } )) : o(r), o(r) } catch (e) { s(e) } } "fulfilled" === i.PromiseState && h(e), "rejected" === i.PromiseState && h(r), "pending" == i.PromiseState && i.callbacks.push({ onReject: function() { h(r) }, onResolve: function() { h(e) } }) } )) } , t.prototype.catch = function(t) { return this.then(void 0, t) } , t.resolve = function(e) { return new t((function(r, i) { try { e instanceof t ? e.then((function(t) { r(t) } ), (function(t) { i(t) } )) : r(e) } catch (t) { i(t) } } )) } , t.reject = function(e) { return new t((function(t, r) { r(e) } )) } , t.all = function(e) { var r = [] , i = 0; return new t((function(n, o) { for (var s = 0; s < e.length; s++) !function(s) { e[s]instanceof t ? e[s].then((function(t) { i++, r[s] = t, i === e.length && n(r) } ), (function(t) { o(t) } )) : (r[s] = e, i++) }(s) } )) } ; var s, h = t.race = function(e) { return new t((function(r, i) { for (var n = 0; n < e.length; n++) e[n]instanceof t ? e[n].then((function(t) { r(t) } ), (function(t) { i(t) } )) : r(e[n]) } )) } , u = null; function a() { this.handshakePublicKey = "", this.handshakeUrl = "", this._keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", this.publicKeyHeader = "", this.sm2Key = "", this.sm4Key = "", this.iv = "", this.randomKey = "", this.sm2EncryptData = "", this.sm4EncryptData = "", this.encryptStorageSm4Key = "6c3d6878252e641b", this.encryptStorageIv = "5f5e5a247f544d771255134517043757", this.encryptRandomKey = "", this.encryptSm2RandomKey = ""; var t = !1 , e = !1; "undefined" != typeof wx && wx.request && wx.login ? t = !0 : "undefined" != typeof jd && jd.request && jd.login ? e = t = !0 : t = !1, this.isJd = e, t = (this.isApplet = t) ? 2 : 1, this.isResponse = !1, this.version = [1], this.client_type = [t], this.key_cipher = [], this.time = null, this.ms = 6e4, this._localStorage = "" } h = "undefined" != typeof wx && wx.request && wx.login ? (u = wx, !0) : !("undefined" == typeof jd || !jd.request || !jd.login || (u = jd, 0)), s = h ? function(e) { return new t((function(t, r) { u.request(o({ header: { "Content-Type": "application/x-www-form-urlencoded" } }, e)) } )) } : function(t) { (t = t || {}).type = (t.type || "GET").toUpperCase(), t.dataType = t.dataType || "json", t.async = t.async || !0; var e, r = function(t) { var e, r = []; for (e in t = t || {}) r.push(encodeURIComponent(e) + "=" + encodeURIComponent(t[e])); return r.join("&") }(t.data), i = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP"); t.timeout && (e = setTimeout((function() { 4 != i.readySate && i.abort() } ), t.timeout || 1e4)), i.onreadystatechange = function() { var r; 4 == i.readyState && (clearTimeout(e), 200 <= (r = i.status) && r < 300 || 304 === r ? t.success && t.success(i.responseText, i.responseXML) : t.error && t.error(r)) } , "GET" == t.type ? (i.open("GET", t.url + "?" + r, t.async), i.send(null)) : "POST" == t.type && (i.open("POST", t.url, t.async), i.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), i.send(r)) } , a.prototype = { commonPromise: function(e, r) { var i = this , n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1 , o = (r = this.isJd ? encodeURIComponent(r) : r, 1 !== n ? { data: r } : { clientKey: r }); return new t((function(t, r) { var n = { url: e, method: "POST", data: o, success: function(e) { var i = e.statusCode; 200 <= i && i < 300 || 304 === i ? t(e.data) : r(i) }, fail: function(t) { r(t) } }; i.isApplet || (n = { type: "POST", url: e, data: o, success: function(e) { t(e) }, error: function(t) { r(t) } }), s(n) } )) }, encryptDecryptRequest: function(t, e) { return this.commonPromise(t, e) }, createDemote: function() { this.isResponse || this.demoteKeyCipher() }, demoteKeyCipher: function() { var t = [140, 58, 51, 17, 108, 219, 141, 107, 65, 13, 222, 250, 147, 190, 156, 25]; this.isApplet && (t = [68, 176, 150, 193, 133, 248, 213, 81, 190, 140, 15, 58, 167, 248, 31, 97]); var r = this.createRandomKey(8); this.randomKey = r; var i = this.createRandomKey(); t = e.sm4.encrypt(r, t, { mode: "cbc", iv: i }), this.encryptRandomKey = t, t = this.hexToArray(t), t = this.hexToArray(i).concat(t, [0, 0, 0, 0, 0]), this.key_cipher = t }, handshake: function(t, e) { this.isResponse || this.key_cipher.length && Date.now() < this.lastClick + this.ms || (this.handshakeUrl || (this.handshakeUrl = t, this.handshakePublicKey = e), this.createDemote(), this.sm2EncryptRandomKey(t, e)) }, encryptRequest: function(t, e) { var r = this; this.encryptDecryptRequest(t, e).then((function(t) { t ? (t = r.decode(t), t = Array.prototype.slice.call(t), r.key_cipher = t, r.isResponse = !0) : (r.isResponse = !1, r.lastClick = Date.now()) } )).catch((function(t) { r.isResponse = !1, r.lastClick = Date.now() } )) }, sm2EncryptRandomKey: function(t, r) { var i = e.sm2.doEncrypt(this.randomKey, r) , n = this.hexToArray(this.createRandomKey(1)) , o = this.version; r = this.client_type, i = this.hexToArray(i), i = n.concat(o, r, i), i = new Uint8Array(i), i = this.arrayBufferToBase64(i), this.encryptRequest(t, i) }, createRandomKey: function() { var t = this.randomUnit8Array(1, 127, 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 16); return this.buffertoHex(t) }, encrypt: function(t) { if (!t) throw new Error("encrypt data can not empty"); this.createDemote(); var r, i = { mode: "cbc", iv: r = this.createRandomKey() }, n = this.utf8ToHex(this.randomKey), o = e.sm4.encrypt(t, n, i), s = this.hexToArray(o), h = this.hexToArray(this.createRandomKey(1)), u = this.version, a = this.client_type; return t = this.isResponse ? [0] : [1], n = this.key_cipher, i = this.hexToArray(r), o = s, (r = new Uint32Array(1))[0] = s.length, r = Array.prototype.slice.call(new Uint8Array(r.buffer)), o = h.concat(u, a, t, n, i, r, o), o = new Uint8Array(o), o = this.arrayBufferToBase64(o), !this.isResponse && this.handshakeUrl && this.handshake(this.handshakeUrl, this.handshakePublicKey), o }, encryptData: function(t, e) { if (!e) throw new Error("encrypt data can not empty"); var r = (i = this.decode(t)).byteLength , i = (t = i.subarray(0, r - 65), i.subarray(r - 65)); return r = this.buffertoHex(t), t = this.buffertoHex(i), i = this.encryptStorageSm4Data(), this.publicKeyHeader = r, this.sm2Key = t, this.sm4Key = i, this.iv = this.createRandomKey(), this.encryptSm2Data(), this.encryptSm4Data(e), this.getEncryptData() }, testDecrpt: function(t, e) { return this.commonPromise(t, e, 2) }, test: function(e, r) { return this.testDecrpt(e, r).then((function(e) { return t.resolve(e) } )).catch((function(e) { return t.reject(e) } )) }, randomUnit8Array: function(t, e, r) { e += 1; for (var i = [], n = void 0 === r ? 1 : r, o = 0; o < n; o++) { var s = Math.floor(Math.random() * (e - t) + t); i.push(s) } return new Uint8Array(i) }, buffertoHex: function(t) { return Array.prototype.map.call(t, (function(t) { return ("00" + t.toString(16)).slice(-2) } )).join("") }, encryptSm2Data: function() { var t = this.sm4Key , r = this.sm2Key; r = e.sm2.doEncrypt(t, r), this.sm2EncryptData = r }, encryptSm4Data: function(t) { var r = this.sm4Key , i = { mode: "cbc", iv: this.iv }; r = this.utf8ToHex(r), i = e.sm4.encrypt(t, r, i), this.sm4EncryptData = i }, encryptStorageSm4Data: function() { var t = this.encryptStorageSm4Key , r = { mode: "cbc", iv: this.encryptStorageIv } , i = this.utf8ToHex(t) , n = "" , o = this.isApplet , s = this.isJd; if (t = o ? s ? jd : wx : null, o) n = t.getStorageSync("aksKey"); else try { n = localStorage.getItem("aksKey") } catch (t) { n = this._localStorage } if (s = "", n) s = e.sm4.decrypt(n, i, r); else if (n = this.randomUnit8Array(1, 127, 8), s = this.buffertoHex(n), r = e.sm4.encrypt(s, i, r), o) t.setStorageSync("aksKey", r); else try { localStorage.setItem("aksKey", r) } catch (t) { this._localStorage = r } return s }, utf8ToHex: function(t) { for (var e = (t = unescape(encodeURIComponent(t))).length, r = [], i = 0; i < e; i++) r[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; for (var n = [], o = 0; o < e; o++) { var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255; n.push((s >>> 4).toString(16)), n.push((15 & s).toString(16)) } return n.join("") }, hex2b64: function(t) { for (var e, r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", i = "", n = 0; n + 3 <= t.length; n += 3) e = parseInt(t.substring(n, n + 3), 16), i += r.charAt(e >> 6) + r.charAt(63 & e); for (n + 1 == t.length ? (e = parseInt(t.substring(n, n + 1), 16), i += r.charAt(e << 2)) : n + 2 == t.length && (e = parseInt(t.substring(n, n + 2), 16), i += r.charAt(e >> 2) + r.charAt((3 & e) << 4)); 0 < (3 & i.length); ) i += "="; return i }, leftPad: function(t, e) { return t.length >= e ? t : new Array(e - t.length + 1).join("0") + t }, hexToArray: function(t) { for (var e = [], r = (t = (r = t.length) % 2 != 0 ? this.leftPad(t, r + 1) : t).length, i = 0; i < r; i += 2) e.push(parseInt(t.substr(i, 2), 16)); return e }, getEncryptData: function() { var t = this.hexToArray(this.publicKeyHeader) , e = this.hexToArray(this.sm2EncryptData) , r = this.hexToArray(this.sm4EncryptData) , i = this.hexToArray(this.iv); return r = t.concat(e, i, r), r = new Uint8Array(r), this.arrayBufferToBase64(r) }, removePaddingChars: function(t) { return 64 == this._keyStr.indexOf(t.charAt(t.length - 1)) ? t.substring(0, t.length - 1) : t }, arrayBufferToBase64: function(t) { for (var e = t.byteLength, r = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/"], i = "", n = 0; 3 <= e - n; n += 3) { var o = t[n] , s = t[n + 1] , h = t[n + 2]; i += r[o >>> 2] + r[(3 & o) << 4 | s >>> 4] + r[(15 & s) << 2 | h >>> 6] + r[63 & h] } var u, a = e - n; return 1 == a ? i += r[(u = t[n]) >>> 2] + r[(3 & u) << 4] + "==" : 2 == a && (u = t[n], a = t[n + 1], i += r[u >>> 2] + r[(3 & u) << 4 | a >>> 4] + r[(15 & a) << 2] + "="), i }, decode: function(t, e) { var r = t; e = e, r = this.removePaddingChars(r), r = this.removePaddingChars(r); var i, n, o, s, h, u, a = parseInt(r.length / 4 * 3, 10), c = 0, f = 0, p = e ? new Uint8Array(e) : new Uint8Array(a); for (r = r.replace(/[^A-Za-z0-9\+\/\=]/g, ""), c = 0; c < a; c += 3) o = this._keyStr.indexOf(r.charAt(f++)), i = (15 & (s = this._keyStr.indexOf(r.charAt(f++)))) << 4 | (h = this._keyStr.indexOf(r.charAt(f++))) >> 2, n = (3 & h) << 6 | (u = this._keyStr.indexOf(r.charAt(f++))), p[c] = o << 2 | s >> 4, 64 != h && (p[c + 1] = i), 64 != u && (p[c + 2] = n); return p }, decryptData: function(t) { var r = (o = this.decode(t)).byteLength , i = o.subarray(3, 19) , n = o.subarray(19, r) , o = (t = this.buffertoHex(i), this.buffertoHex(n)); if (r = this.isApplet, i = "", n = this.isJd, n = r ? n ? jd : wx : null, r) try { if (!(i = n.getStorageSync("aksKey"))) throw new Error("get storage fail") } catch (t) { throw new Error("get storage fail") } else try { i = localStorage.getItem("aksKey") } catch (t) { i = this._localStorage } if (n = "", !i) throw new Error("key is invalid"); return n = this.encryptStorageSm4Data(), n = this.utf8ToHex(n), e.sm4.decrypt(o, n, { mode: "cbc", iv: t }) } }; var c = new a , f = { SummerCryptico: c } }(), i } )); function encrypt_data(publicKey, data){ return SummerCryptico.encryptData(publicKey, data) }