var LZString = { _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", _f: String.fromCharCode, compressToBase64: function (e) { if (e == null) return ""; var t = ""; var n, r, i, s, o, u, a; var f = 0; e = LZString.compress(e); while (f < e.length * 2) { if (f % 2 == 0) { n = e.charCodeAt(f / 2) >> 8; r = e.charCodeAt(f / 2) & 255; if (f / 2 + 1 < e.length) i = e.charCodeAt(f / 2 + 1) >> 8; else i = NaN; } else { n = e.charCodeAt((f - 1) / 2) & 255; if ((f + 1) / 2 < e.length) { r = e.charCodeAt((f + 1) / 2) >> 8; i = e.charCodeAt((f + 1) / 2) & 255; } else r = i = NaN; } f += 3; s = n >> 2; o = ((n & 3) << 4) | (r >> 4); u = ((r & 15) << 2) | (i >> 6); a = i & 63; if (isNaN(r)) { u = a = 64; } else if (isNaN(i)) { a = 64; } t = t + LZString._keyStr.charAt(s) + LZString._keyStr.charAt(o) + LZString._keyStr.charAt(u) + LZString._keyStr.charAt(a); } return t; }, decompressFromBase64: function (e) { if (e == null) return ""; var t = "", n = 0, r, i, s, o, u, a, f, l, c = 0, h = LZString._f; e = e.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (c < e.length) { u = LZString._keyStr.indexOf(e.charAt(c++)); a = LZString._keyStr.indexOf(e.charAt(c++)); f = LZString._keyStr.indexOf(e.charAt(c++)); l = LZString._keyStr.indexOf(e.charAt(c++)); i = (u << 2) | (a >> 4); s = ((a & 15) << 4) | (f >> 2); o = ((f & 3) << 6) | l; if (n % 2 == 0) { r = i << 8; if (f != 64) { t += h(r | s); } if (l != 64) { r = o << 8; } } else { t = t + h(r | i); if (f != 64) { r = s << 8; } if (l != 64) { t += h(r | o); } } n += 3; } return LZString.decompress(t); }, compressToUTF16: function (e) { if (e == null) return ""; var t = "", n, r, i, s = 0, o = LZString._f; e = LZString.compress(e); for (n = 0; n < e.length; n++) { r = e.charCodeAt(n); switch (s++) { case 0: t += o((r >> 1) + 32); i = (r & 1) << 14; break; case 1: t += o(i + (r >> 2) + 32); i = (r & 3) << 13; break; case 2: t += o(i + (r >> 3) + 32); i = (r & 7) << 12; break; case 3: t += o(i + (r >> 4) + 32); i = (r & 15) << 11; break; case 4: t += o(i + (r >> 5) + 32); i = (r & 31) << 10; break; case 5: t += o(i + (r >> 6) + 32); i = (r & 63) << 9; break; case 6: t += o(i + (r >> 7) + 32); i = (r & 127) << 8; break; case 7: t += o(i + (r >> 8) + 32); i = (r & 255) << 7; break; case 8: t += o(i + (r >> 9) + 32); i = (r & 511) << 6; break; case 9: t += o(i + (r >> 10) + 32); i = (r & 1023) << 5; break; case 10: t += o(i + (r >> 11) + 32); i = (r & 2047) << 4; break; case 11: t += o(i + (r >> 12) + 32); i = (r & 4095) << 3; break; case 12: t += o(i + (r >> 13) + 32); i = (r & 8191) << 2; break; case 13: t += o(i + (r >> 14) + 32); i = (r & 16383) << 1; break; case 14: t += o(i + (r >> 15) + 32, (r & 32767) + 32); s = 0; break; } } return t + o(i + 32); }, decompressFromUTF16: function (e) { if (e == null) return ""; var t = "", n, r, i = 0, s = 0, o = LZString._f; while (s < e.length) { r = e.charCodeAt(s) - 32; switch (i++) { case 0: n = r << 1; break; case 1: t += o(n | (r >> 14)); n = (r & 16383) << 2; break; case 2: t += o(n | (r >> 13)); n = (r & 8191) << 3; break; case 3: t += o(n | (r >> 12)); n = (r & 4095) << 4; break; case 4: t += o(n | (r >> 11)); n = (r & 2047) << 5; break; case 5: t += o(n | (r >> 10)); n = (r & 1023) << 6; break; case 6: t += o(n | (r >> 9)); n = (r & 511) << 7; break; case 7: t += o(n | (r >> 8)); n = (r & 255) << 8; break; case 8: t += o(n | (r >> 7)); n = (r & 127) << 9; break; case 9: t += o(n | (r >> 6)); n = (r & 63) << 10; break; case 10: t += o(n | (r >> 5)); n = (r & 31) << 11; break; case 11: t += o(n | (r >> 4)); n = (r & 15) << 12; break; case 12: t += o(n | (r >> 3)); n = (r & 7) << 13; break; case 13: t += o(n | (r >> 2)); n = (r & 3) << 14; break; case 14: t += o(n | (r >> 1)); n = (r & 1) << 15; break; case 15: t += o(n | r); i = 0; break; } s++; } return LZString.decompress(t); }, compressToUint8Array: function (e) { var t = LZString.compress(e); var n = new Uint8Array(t.length * 2); for (var r = 0, i = t.length; r < i; r++) { var s = t.charCodeAt(r); n[r * 2] = s >>> 8; n[r * 2 + 1] = s % 256; } return n; }, decompressFromUint8Array: function (e) { if (e === null || e === undefined) { return LZString.decompress(e); } else { var t = new Array(e.length / 2); for (var n = 0, r = t.length; n < r; n++) { t[n] = e[n * 2] * 256 + e[n * 2 + 1]; } return LZString.decompress(String.fromCharCode.apply(null, t)); } }, compressToEncodedURIComponent: function (e) { return LZString.compressToBase64(e).replace(/=/g, "$").replace(/\//g, "-"); }, decompressFromEncodedURIComponent: function (e) { if (e) e = e.replace(/$/g, "=").replace(/-/g, "/"); return LZString.decompressFromBase64(e); }, compress: function (e) { if (e == null) return ""; var t, n, r = {}, i = {}, s = "", o = "", u = "", a = 2, f = 3, l = 2, c = "", h = 0, p = 0, d, v = LZString._f; for (d = 0; d < e.length; d += 1) { s = e.charAt(d); if (!Object.prototype.hasOwnProperty.call(r, s)) { r[s] = f++; i[s] = true; } o = u + s; if (Object.prototype.hasOwnProperty.call(r, o)) { u = o; } else { if (Object.prototype.hasOwnProperty.call(i, u)) { if (u.charCodeAt(0) < 256) { for (t = 0; t < l; t++) { h = h << 1; if (p == 15) { p = 0; c += v(h); h = 0; } else { p++; } } n = u.charCodeAt(0); for (t = 0; t < 8; t++) { h = (h << 1) | (n & 1); if (p == 15) { p = 0; c += v(h); h = 0; } else { p++; } n = n >> 1; } } else { n = 1; for (t = 0; t < l; t++) { h = (h << 1) | n; if (p == 15) { p = 0; c += v(h); h = 0; } else { p++; } n = 0; } n = u.charCodeAt(0); for (t = 0; t < 16; t++) { h = (h << 1) | (n & 1); if (p == 15) { p = 0; c += v(h); h = 0; } else { p++; } n = n >> 1; } } a--; if (a == 0) { a = Math.pow(2, l); l++; } delete i[u]; } else { n = r[u]; for (t = 0; t < l; t++) { h = (h << 1) | (n & 1); if (p == 15) { p = 0; c += v(h); h = 0; } else { p++; } n = n >> 1; } } a--; if (a == 0) { a = Math.pow(2, l); l++; } r[o] = f++; u = String(s); } } if (u !== "") { if (Object.prototype.hasOwnProperty.call(i, u)) { if (u.charCodeAt(0) < 256) { for (t = 0; t < l; t++) { h = h << 1; if (p == 15) { p = 0; c += v(h); h = 0; } else { p++; } } n = u.charCodeAt(0); for (t = 0; t < 8; t++) { h = (h << 1) | (n & 1); if (p == 15) { p = 0; c += v(h); h = 0; } else { p++; } n = n >> 1; } } else { n = 1; for (t = 0; t < l; t++) { h = (h << 1) | n; if (p == 15) { p = 0; c += v(h); h = 0; } else { p++; } n = 0; } n = u.charCodeAt(0); for (t = 0; t < 16; t++) { h = (h << 1) | (n & 1); if (p == 15) { p = 0; c += v(h); h = 0; } else { p++; } n = n >> 1; } } a--; if (a == 0) { a = Math.pow(2, l); l++; } delete i[u]; } else { n = r[u]; for (t = 0; t < l; t++) { h = (h << 1) | (n & 1); if (p == 15) { p = 0; c += v(h); h = 0; } else { p++; } n = n >> 1; } } a--; if (a == 0) { a = Math.pow(2, l); l++; } } n = 2; for (t = 0; t < l; t++) { h = (h << 1) | (n & 1); if (p == 15) { p = 0; c += v(h); h = 0; } else { p++; } n = n >> 1; } while (true) { h = h << 1; if (p == 15) { c += v(h); break; } else p++; } return c; }, decompress: function (e) { if (e == null) return ""; if (e == "") return null; var t = [], n, r = 4, i = 4, s = 3, o = "", u = "", a, f, l, c, h, p, d, v = LZString._f, m = { string: e, val: e.charCodeAt(0), position: 32768, index: 1 }; for (a = 0; a < 3; a += 1) { t[a] = a; } l = 0; h = Math.pow(2, 2); p = 1; while (p != h) { c = m.val & m.position; m.position >>= 1; if (m.position == 0) { m.position = 32768; m.val = m.string.charCodeAt(m.index++); } l |= (c > 0 ? 1 : 0) * p; p <<= 1; } switch ((n = l)) { case 0: l = 0; h = Math.pow(2, 8); p = 1; while (p != h) { c = m.val & m.position; m.position >>= 1; if (m.position == 0) { m.position = 32768; m.val = m.string.charCodeAt(m.index++); } l |= (c > 0 ? 1 : 0) * p; p <<= 1; } d = v(l); break; case 1: l = 0; h = Math.pow(2, 16); p = 1; while (p != h) { c = m.val & m.position; m.position >>= 1; if (m.position == 0) { m.position = 32768; m.val = m.string.charCodeAt(m.index++); } l |= (c > 0 ? 1 : 0) * p; p <<= 1; } d = v(l); break; case 2: return ""; } t[3] = d; f = u = d; while (true) { if (m.index > m.string.length) { return ""; } l = 0; h = Math.pow(2, s); p = 1; while (p != h) { c = m.val & m.position; m.position >>= 1; if (m.position == 0) { m.position = 32768; m.val = m.string.charCodeAt(m.index++); } l |= (c > 0 ? 1 : 0) * p; p <<= 1; } switch ((d = l)) { case 0: l = 0; h = Math.pow(2, 8); p = 1; while (p != h) { c = m.val & m.position; m.position >>= 1; if (m.position == 0) { m.position = 32768; m.val = m.string.charCodeAt(m.index++); } l |= (c > 0 ? 1 : 0) * p; p <<= 1; } t[i++] = v(l); d = i - 1; r--; break; case 1: l = 0; h = Math.pow(2, 16); p = 1; while (p != h) { c = m.val & m.position; m.position >>= 1; if (m.position == 0) { m.position = 32768; m.val = m.string.charCodeAt(m.index++); } l |= (c > 0 ? 1 : 0) * p; p <<= 1; } t[i++] = v(l); d = i - 1; r--; break; case 2: return u; } if (r == 0) { r = Math.pow(2, s); s++; } if (t[d]) { o = t[d]; } else { if (d === i) { o = f + f.charAt(0); } else { return null; } } u += o; t[i++] = f + o.charAt(0); r--; f = o; if (r == 0) { r = Math.pow(2, s); s++; } } }, }; if (typeof module !== "undefined" && module != null) { module.exports = LZString; }