声明:本篇文章仅用于知识分享,不得用于其他用途
网址:aHR0cHM6Ly93d3cuY2hhbm1hbWEuY29tL3Byb21vdGlvblJhbmsvdGlrR29vZHNTYWxlLz9jYXRlZ29yeV9pZD0tMQ==
解密逻辑
- 刷新网页,抓流量包。
- data中的数据一看肯定是加过密的,需要知道其解密逻辑,data这个词比较普遍,直接搜索肯定会出现很多,可以看到is_encrypt和data属于同一个组的,直接搜索is_encrypt。
总共4处,上面两处的data是定值,不是我们想要的,下面两处无法判断,全部打上断点。
- ctrl+shift+r刷新网页,断在了最后一处。
看看这一行代码,出现了很多赋值操作,重点关注c.data。
第一次触发的这个没有出现想要的数据,一直释放断点,直到c.data的数据如下。
- 从这行代码可知c.data赋给了i、o、r、s,往下看几行代码,却没有跟这几个变量相关的。只能单步调试了,if判断不成立,直接进入return语句。
- (0,Z.ZP)看着比较突兀,找到其定义的地方,打个断点。
- 需要解密的数据传给了p函数,return中又把它传给了m函数,定位m函数,可以很明显看到是个AES解密了。
- 打断点,知道了e和填充方式,n的定义在其上面,三要素齐全就可以解密了。拷贝代码,梭一把。
- var s = require("crypto-js")
- var e = "要解密的数据"
- function decrypt(e) {
- var n = s.enc.Utf8.parse(27..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -39)
- }
- )).join("") + 24901..toString(36).toLowerCase() + 33..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -39)
- }
- )).join("") + 976..toString(36).toLowerCase() + 20..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -39)
- }
- )).join("") + function () {
- var t = Array.prototype.slice.call(arguments)
- , e = t.shift();
- return t.reverse().map((function (t, n) {
- return String.fromCharCode(t - e - 24 - n)
- }
- )).join("")
- }(10, 127, 154, 91, 151, 91, 136) + 11..toString(36).toLowerCase() + 13..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -13)
- }
- )).join("")),
- a = s.AES.decrypt(e, n, {
- mode: s.mode.ECB,
- padding: s.pad.Pkcs7
- })
- console.log(a);
- }
- decrypt(e);
复制代码 运行结果如下,是个字节组。
8. 继续看源代码,a还经过l函数的处理,得到的结果o还传给了c.ungzip函数处理。
将l函数弄出来,都是些位运算,o的结果是个数组。
9. 还是得经过c.ungzip函数的处理,定位。
看这个函数里的内容,看不到一点处理的方式。先拷出来,看缺少什么补什么吧。(注:这个过程非常痛苦,一环套一环,花费了我半天的功夫,代码能运行了,但是没有结果)
完整代码如下:- var CryptoJS = require("crypto-js")
- var e = "";
- function decrypt(e) {
- var n = CryptoJS.enc.Utf8.parse(27..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -39)
- }
- )).join("") + 24901..toString(36).toLowerCase() + 33..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -39)
- }
- )).join("") + 976..toString(36).toLowerCase() + 20..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -39)
- }
- )).join("") + function () {
- var t = Array.prototype.slice.call(arguments)
- , e = t.shift();
- return t.reverse().map((function (t, n) {
- return String.fromCharCode(t - e - 24 - n)
- }
- )).join("")
- }(10, 127, 154, 91, 151, 91, 136) + 11..toString(36).toLowerCase() + 13..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -13)
- }
- )).join(""));
- a = CryptoJS.AES.decrypt(e, n, {
- mode: CryptoJS.mode.ECB,
- padding: CryptoJS.pad.Pkcs7
- });
- o = l(a);
- r = ungzip(o, {
- to: "string"
- })
- console.log(r);
- }
- const t = (e, t) => Object.prototype.hasOwnProperty.call(e, t);
- function assign(e) {
- const n = Array.prototype.slice.call(arguments, 1);
- while (n.length) {
- const r = n.shift();
- if (r) {
- if ("object" !== typeof r)
- throw new TypeError(r + "must be non-object");
- for (const n in r)
- t(r, "to") && (e[n] = r[n])
- }
- }
- return e
- }
- var options = {};
- function s() {
- this.input = null,
- this.next_in = 0,
- this.avail_in = 0,
- this.total_in = 0,
- this.output = null,
- this.next_out = 0,
- this.avail_out = 0,
- this.total_out = 0,
- this.msg = "",
- this.state = null,
- this.data_type = 2,
- this.adler = 0
- }
- function ie() {
- this.mode = 0,
- this.last = !1,
- this.wrap = 0,
- this.havedict = !1,
- this.flags = 0,
- this.dmax = 0,
- this.check = 0,
- this.total = 0,
- this.head = null,
- this.wbits = 0,
- this.wsize = 0,
- this.whave = 0,
- this.wnext = 0,
- this.window = null,
- this.hold = 0,
- this.bits = 0,
- this.length = 0,
- this.offset = 0,
- this.extra = 0,
- this.lencode = null,
- this.distcode = null,
- this.lenbits = 0,
- this.distbits = 0,
- this.ncode = 0,
- this.nlen = 0,
- this.ndist = 0,
- this.have = 0,
- this.next = null,
- this.lens = new Uint16Array(320),
- this.work = new Uint16Array(288),
- this.lendyn = null,
- this.distdyn = null,
- this.sane = 0,
- this.back = 0,
- this.was = 0
- }
- const oe = e => {
- if (!e || !e.state)
- return v;
- const t = e.state;
- return e.total_in = e.total_out = t.total = 0,
- e.msg = "",
- t.wrap && (e.adler = 1 & t.wrap),
- t.mode = 1,
- t.last = 0,
- t.havedict = 0,
- t.dmax = 32768,
- t.head = null,
- t.hold = 0,
- t.bits = 0,
- t.lencode = t.lendyn = new Int32Array(852),
- t.distcode = t.distdyn = new Int32Array(592),
- t.sane = 1,
- t.back = -1,
- 0
- }
- , ae = e => {
- if (!e || !e.state)
- return v;
- const t = e.state;
- return t.wsize = 0,
- t.whave = 0,
- t.wnext = 0,
- oe(e)
- }
- , se = (e, t) => {
- let n;
- if (!e || !e.state)
- return v;
- const r = e.state;
- return t < 0 ? (n = 0,
- t = -t) : (n = 1 + (t >> 4),
- t < 48 && (t &= 15)),
- t && (t < 8 || t > 15) ? v : (null !== r.window && r.wbits !== t && (r.window = null),
- r.wrap = n,
- r.wbits = t,
- ae(e))
- }
- , le = (e, t) => {
- if (!e)
- return v;
- const n = new ie;
- e.state = n,
- n.window = null;
- const r = se(e, t);
- return r !== d && (e.state = null),
- r
- }
- , ue = e => le(e, ne);
- function inflateInit2(e, t) {
- if (!e)
- return v;
- const n = new ie;
- e.state = n,
- n.window = null;
- const r = se(e, t);
- return r !== 0 && (e.state = null),
- r
- }
- function y(e) {
- this.options = assign({
- chunkSize: 65536,
- windowBits: 47,
- to: ""
- }, e || {});
- const t = this.options;
- t.raw && t.windowBits >= 0 && t.windowBits < 16 && (t.windowBits = -t.windowBits,
- 0 === t.windowBits && (t.windowBits = -15)),
- !(t.windowBits >= 0 && t.windowBits < 16) || e && e.windowBits || (t.windowBits += 32),
- t.windowBits > 15 && t.windowBits < 48 && 0 === (15 & t.windowBits) && (t.windowBits |= 15),
- this.err = 0,
- this.msg = "",
- this.ended = !1,
- this.chunks = [],
- this.strm = new s,
- this.strm.avail_out = 0;
- let n = inflateInit2(this.strm, t.windowBits);
- if (n !== 0)
- throw new Error(a[n]);
- if (this.header = new lll,
- inflateGetHeader(this.strm, this.header),
- t.dictionary && ("string" === typeof t.dictionary ? t.dictionary = o.string2buf(t.dictionary) : "[object ArrayBuffer]" === u.call(t.dictionary) && (t.dictionary = new Uint8Array(t.dictionary)),
- t.raw && (n = r.inflateSetDictionary(this.strm, t.dictionary),
- n !== f)))
- throw new Error(a[n])
- }
- function inflateGetHeader(e, t) {
- if (!e || !e.state)
- return v;
- const n = e.state;
- return 0 === (2 & n.wrap) ? v : (n.head = t,
- t.done = !1,
- 0)
- }
- function lll() {
- this.text = 0,
- this.time = 0,
- this.xflags = 0,
- this.os = 0,
- this.extra = null,
- this.extra_len = 0,
- this.name = "",
- this.comment = "",
- this.hcrc = 0,
- this.done = !1
- }
- function iiii(e, t, r, i) {
- const o = {
- "0": 0,
- "1": 1996959894,
- "2": 3993919788,
- "3": 2567524794,
- "4": 124634137,
- "5": 1886057615,
- "6": 3915621685,
- "7": 2657392035,
- "8": 249268274,
- "9": 2044508324,
- "10": 3772115230,
- "11": 2547177864,
- "12": 162941995,
- "13": 2125561021,
- "14": 3887607047,
- "15": 2428444049,
- "16": 498536548,
- "17": 1789927666,
- "18": 4089016648,
- "19": 2227061214,
- "20": 450548861,
- "21": 1843258603,
- "22": 4107580753,
- "23": 2211677639,
- "24": 325883990,
- "25": 1684777152,
- "26": 4251122042,
- "27": 2321926636,
- "28": 335633487,
- "29": 1661365465,
- "30": 4195302755,
- "31": 2366115317,
- "32": 997073096,
- "33": 1281953886,
- "34": 3579855332,
- "35": 2724688242,
- "36": 1006888145,
- "37": 1258607687,
- "38": 3524101629,
- "39": 2768942443,
- "40": 901097722,
- "41": 1119000684,
- "42": 3686517206,
- "43": 2898065728,
- "44": 853044451,
- "45": 1172266101,
- "46": 3705015759,
- "47": 2882616665,
- "48": 651767980,
- "49": 1373503546,
- "50": 3369554304,
- "51": 3218104598,
- "52": 565507253,
- "53": 1454621731,
- "54": 3485111705,
- "55": 3099436303,
- "56": 671266974,
- "57": 1594198024,
- "58": 3322730930,
- "59": 2970347812,
- "60": 795835527,
- "61": 1483230225,
- "62": 3244367275,
- "63": 3060149565,
- "64": 1994146192,
- "65": 31158534,
- "66": 2563907772,
- "67": 4023717930,
- "68": 1907459465,
- "69": 112637215,
- "70": 2680153253,
- "71": 3904427059,
- "72": 2013776290,
- "73": 251722036,
- "74": 2517215374,
- "75": 3775830040,
- "76": 2137656763,
- "77": 141376813,
- "78": 2439277719,
- "79": 3865271297,
- "80": 1802195444,
- "81": 476864866,
- "82": 2238001368,
- "83": 4066508878,
- "84": 1812370925,
- "85": 453092731,
- "86": 2181625025,
- "87": 4111451223,
- "88": 1706088902,
- "89": 314042704,
- "90": 2344532202,
- "91": 4240017532,
- "92": 1658658271,
- "93": 366619977,
- "94": 2362670323,
- "95": 4224994405,
- "96": 1303535960,
- "97": 984961486,
- "98": 2747007092,
- "99": 3569037538,
- "100": 1256170817,
- "101": 1037604311,
- "102": 2765210733,
- "103": 3554079995,
- "104": 1131014506,
- "105": 879679996,
- "106": 2909243462,
- "107": 3663771856,
- "108": 1141124467,
- "109": 855842277,
- "110": 2852801631,
- "111": 3708648649,
- "112": 1342533948,
- "113": 654459306,
- "114": 3188396048,
- "115": 3373015174,
- "116": 1466479909,
- "117": 544179635,
- "118": 3110523913,
- "119": 3462522015,
- "120": 1591671054,
- "121": 702138776,
- "122": 2966460450,
- "123": 3352799412,
- "124": 1504918807,
- "125": 783551873,
- "126": 3082640443,
- "127": 3233442989,
- "128": 3988292384,
- "129": 2596254646,
- "130": 62317068,
- "131": 1957810842,
- "132": 3939845945,
- "133": 2647816111,
- "134": 81470997,
- "135": 1943803523,
- "136": 3814918930,
- "137": 2489596804,
- "138": 225274430,
- "139": 2053790376,
- "140": 3826175755,
- "141": 2466906013,
- "142": 167816743,
- "143": 2097651377,
- "144": 4027552580,
- "145": 2265490386,
- "146": 503444072,
- "147": 1762050814,
- "148": 4150417245,
- "149": 2154129355,
- "150": 426522225,
- "151": 1852507879,
- "152": 4275313526,
- "153": 2312317920,
- "154": 282753626,
- "155": 1742555852,
- "156": 4189708143,
- "157": 2394877945,
- "158": 397917763,
- "159": 1622183637,
- "160": 3604390888,
- "161": 2714866558,
- "162": 953729732,
- "163": 1340076626,
- "164": 3518719985,
- "165": 2797360999,
- "166": 1068828381,
- "167": 1219638859,
- "168": 3624741850,
- "169": 2936675148,
- "170": 906185462,
- "171": 1090812512,
- "172": 3747672003,
- "173": 2825379669,
- "174": 829329135,
- "175": 1181335161,
- "176": 3412177804,
- "177": 3160834842,
- "178": 628085408,
- "179": 1382605366,
- "180": 3423369109,
- "181": 3138078467,
- "182": 570562233,
- "183": 1426400815,
- "184": 3317316542,
- "185": 2998733608,
- "186": 733239954,
- "187": 1555261956,
- "188": 3268935591,
- "189": 3050360625,
- "190": 752459403,
- "191": 1541320221,
- "192": 2607071920,
- "193": 3965973030,
- "194": 1969922972,
- "195": 40735498,
- "196": 2617837225,
- "197": 3943577151,
- "198": 1913087877,
- "199": 83908371,
- "200": 2512341634,
- "201": 3803740692,
- "202": 2075208622,
- "203": 213261112,
- "204": 2463272603,
- "205": 3855990285,
- "206": 2094854071,
- "207": 198958881,
- "208": 2262029012,
- "209": 4057260610,
- "210": 1759359992,
- "211": 534414190,
- "212": 2176718541,
- "213": 4139329115,
- "214": 1873836001,
- "215": 414664567,
- "216": 2282248934,
- "217": 4279200368,
- "218": 1711684554,
- "219": 285281116,
- "220": 2405801727,
- "221": 4167216745,
- "222": 1634467795,
- "223": 376229701,
- "224": 2685067896,
- "225": 3608007406,
- "226": 1308918612,
- "227": 956543938,
- "228": 2808555105,
- "229": 3495958263,
- "230": 1231636301,
- "231": 1047427035,
- "232": 2932959818,
- "233": 3654703836,
- "234": 1088359270,
- "235": 936918000,
- "236": 2847714899,
- "237": 3736837829,
- "238": 1202900863,
- "239": 817233897,
- "240": 3183342108,
- "241": 3401237130,
- "242": 1404277552,
- "243": 615818150,
- "244": 3134207493,
- "245": 3453421203,
- "246": 1423857449,
- "247": 601450431,
- "248": 3009837614,
- "249": 3294710456,
- "250": 1567103746,
- "251": 711928724,
- "252": 3020668471,
- "253": 3272380065,
- "254": 1510334235,
- "255": 755167117
- }
- , a = i + r;
- e ^= -1;
- for (let n = i; n < a; n++)
- e = e >>> 8 ^ o[255 & (e ^ t[n])];
- return ~e
- }
- function inflate(e, t) {
- let n, Q, ee, te, ne, ie, oe, ae, se, le, ue, ce, he, fe, me, ve, ge, ye, be, xe, we, _e, Se = 0;
- const Ce = new Uint8Array(4);
- let Ee, ke;
- const Te = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
- if (!e || !e.state || !e.output || !e.input && 0 !== e.avail_in)
- return v;
- n = e.state,
- n.mode === 12 && (n.mode = j),
- ne = e.next_out,
- ee = e.output,
- oe = e.avail_out,
- te = e.next_in,
- Q = e.input,
- ie = e.avail_in,
- ae = n.hold,
- se = n.bits,
- le = ie,
- ue = oe,
- _e = 0;
- e: for (; ;)
- switch (n.mode) {
- case 1:
- if (0 === n.wrap) {
- n.mode = j;
- break
- }
- while (se < 16) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- if (2 & n.wrap && 35615 === ae) {
- n.check = 0,
- Ce[0] = 255 & ae,
- Ce[1] = ae >>> 8 & 255,
- n.check = iiii(n.check, Ce, 2, 0),
- ae = 0,
- se = 0,
- n.mode = 2;
- break
- }
- if (n.flags = 0,
- n.head && (n.head.done = !1),
- !(1 & n.wrap) || (((255 & ae) << 8) + (ae >> 8)) % 31) {
- e.msg = "incorrect header check",
- n.mode = X;
- break
- }
- if ((15 & ae) !== x) {
- e.msg = "unknown compression method",
- n.mode = X;
- break
- }
- if (ae >>>= 4,
- se -= 4,
- we = 8 + (15 & ae),
- 0 === n.wbits)
- n.wbits = we;
- else if (we > n.wbits) {
- e.msg = "invalid window size",
- n.mode = X;
- break
- }
- n.dmax = 1 << n.wbits,
- e.adler = n.check = 1,
- n.mode = 512 & ae ? M : D,
- ae = 0,
- se = 0;
- break;
- case 2:
- while (se < 16) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- if (n.flags = ae,
- (255 & n.flags) !== 8) {
- e.msg = "unknown compression method",
- n.mode = X;
- break
- }
- if (57344 & n.flags) {
- e.msg = "unknown header flags set",
- n.mode = X;
- break
- }
- n.head && (n.head.text = ae >> 8 & 1),
- 512 & n.flags && (Ce[0] = 255 & ae,
- Ce[1] = ae >>> 8 & 255,
- n.check = i(n.check, Ce, 2, 0)),
- ae = 0,
- se = 0,
- n.mode = 3;
- case 3:
- while (se < 32) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- n.head && (n.head.time = ae),
- 512 & n.flags && (Ce[0] = 255 & ae,
- Ce[1] = ae >>> 8 & 255,
- Ce[2] = ae >>> 16 & 255,
- Ce[3] = ae >>> 24 & 255,
- n.check = i(n.check, Ce, 4, 0)),
- ae = 0,
- se = 0,
- n.mode = 4;
- case 4:
- while (se < 16) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- n.head && (n.head.xflags = 255 & ae,
- n.head.os = ae >> 8),
- 512 & n.flags && (Ce[0] = 255 & ae,
- Ce[1] = ae >>> 8 & 255,
- n.check = i(n.check, Ce, 2, 0)),
- ae = 0,
- se = 0,
- n.mode = 5;
- case 5:
- if (1024 & n.flags) {
- while (se < 16) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- n.length = ae,
- n.head && (n.head.extra_len = ae),
- 512 & n.flags && (Ce[0] = 255 & ae,
- Ce[1] = ae >>> 8 & 255,
- n.check = i(n.check, Ce, 2, 0)),
- ae = 0,
- se = 0
- } else
- n.head && (n.head.extra = null);
- n.mode = 6;
- case 6:
- if (1024 & n.flags && (ce = n.length,
- ce > ie && (ce = ie),
- ce && (n.head && (we = n.head.extra_len - n.length,
- n.head.extra || (n.head.extra = new Uint8Array(n.head.extra_len)),
- n.head.extra.set(Q.subarray(te, te + ce), we)),
- 512 & n.flags && (n.check = i(n.check, Q, ce, te)),
- ie -= ce,
- te += ce,
- n.length -= ce),
- n.length))
- break e;
- n.length = 0,
- n.mode = 7;
- case 7:
- if (2048 & n.flags) {
- if (0 === ie)
- break e;
- ce = 0;
- do {
- we = Q[te + ce++],
- n.head && we && n.length < 65536 && (n.head.name += String.fromCharCode(we))
- } while (we && ce < ie);
- if (512 & n.flags && (n.check = i(n.check, Q, ce, te)),
- ie -= ce,
- te += ce,
- we)
- break e
- } else
- n.head && (n.head.name = null);
- n.length = 0,
- n.mode = 8;
- case 8:
- if (4096 & n.flags) {
- if (0 === ie)
- break e;
- ce = 0;
- do {
- we = Q[te + ce++],
- n.head && we && n.length < 65536 && (n.head.comment += String.fromCharCode(we))
- } while (we && ce < ie);
- if (512 & n.flags && (n.check = i(n.check, Q, ce, te)),
- ie -= ce,
- te += ce,
- we)
- break e
- } else
- n.head && (n.head.comment = null);
- n.mode = 9;
- case 9:
- if (512 & n.flags) {
- while (se < 16) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- if (ae !== (65535 & n.check)) {
- e.msg = "header crc mismatch",
- n.mode = X;
- break
- }
- ae = 0,
- se = 0
- }
- n.head && (n.head.hcrc = n.flags >> 9 & 1,
- n.head.done = !0),
- e.adler = n.check = 0,
- n.mode = 12;
- break;
- case 10:
- while (se < 32) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- e.adler = n.check = re(ae),
- ae = 0,
- se = 0,
- n.mode = 11;
- case 11:
- if (0 === n.havedict)
- return e.next_out = ne,
- e.avail_out = oe,
- e.next_in = te,
- e.avail_in = ie,
- n.hold = ae,
- n.bits = se,
- m;
- e.adler = n.check = 1,
- n.mode = 12;
- case 12:
- if (t === 5 || t === 6)
- break e;
- case 13:
- if (n.last) {
- ae >>>= 7 & se,
- se -= 7 & se,
- n.mode = G;
- break
- }
- while (se < 3) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- switch (n.last = 1 & ae,
- ae >>>= 1,
- se -= 1,
- 3 & ae) {
- case 0:
- n.mode = I;
- break;
- case 1:
- if (de(n),
- n.mode = B,
- t === f) {
- ae >>>= 2,
- se -= 2;
- break e
- }
- break;
- case 2:
- n.mode = 17;
- break;
- case 3:
- e.msg = "invalid block type",
- n.mode = X
- }
- ae >>>= 2,
- se -= 2;
- break;
- case 14:
- ae >>>= 7 & se,
- se -= 7 & se;
- while (se < 32) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- if ((65535 & ae) !== (ae >>> 16 ^ 65535)) {
- e.msg = "invalid stored block lengths",
- n.mode = X;
- break
- }
- if (n.length = 65535 & ae,
- ae = 0,
- se = 0,
- n.mode = R,
- t === f)
- break e;
- case 15:
- n.mode = $;
- case 16:
- if (ce = n.length,
- ce) {
- if (ce > ie && (ce = ie),
- ce > oe && (ce = oe),
- 0 === ce)
- break e;
- ee.set(Q.subarray(te, te + ce), ne),
- ie -= ce,
- te += ce,
- oe -= ce,
- ne += ce,
- n.length -= ce;
- break
- }
- n.mode = D;
- break;
- case 17:
- while (se < 14) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- if (n.nlen = 257 + (31 & ae),
- ae >>>= 5,
- se -= 5,
- n.ndist = 1 + (31 & ae),
- ae >>>= 5,
- se -= 5,
- n.ncode = 4 + (15 & ae),
- ae >>>= 4,
- se -= 4,
- n.nlen > 286 || n.ndist > 30) {
- e.msg = "too many length or distance symbols",
- n.mode = X;
- break
- }
- n.have = 0,
- n.mode = 18;
- case 18:
- while (n.have < n.ncode) {
- while (se < 3) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- n.lens[Te[n.have++]] = 7 & ae,
- ae >>>= 3,
- se -= 3
- }
- while (n.have < 19)
- n.lens[Te[n.have++]] = 0;
- if (n.lencode = n.lendyn,
- n.lenbits = 7,
- Ee = {
- bits: n.lenbits
- },
- _e = aaaaaa(0, n.lens, 0, 19, n.lencode, 0, n.work, Ee),
- n.lenbits = Ee.bits,
- _e) {
- e.msg = "invalid code lengths set",
- n.mode = 30;
- break
- }
- n.have = 0,
- n.mode = 19;
- case 19:
- while (n.have < n.nlen + n.ndist) {
- for (; ;) {
- if (Se = n.lencode[ae & (1 << n.lenbits) - 1],
- me = Se >>> 24,
- ve = Se >>> 16 & 255,
- ge = 65535 & Se,
- me <= se)
- break;
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- if (ge < 16)
- ae >>>= me,
- se -= me,
- n.lens[n.have++] = ge;
- else {
- if (16 === ge) {
- ke = me + 2;
- while (se < ke) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- if (ae >>>= me,
- se -= me,
- 0 === n.have) {
- e.msg = "invalid bit length repeat",
- n.mode = X;
- break
- }
- we = n.lens[n.have - 1],
- ce = 3 + (3 & ae),
- ae >>>= 2,
- se -= 2
- } else if (17 === ge) {
- ke = me + 3;
- while (se < ke) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- ae >>>= me,
- se -= me,
- we = 0,
- ce = 3 + (7 & ae),
- ae >>>= 3,
- se -= 3
- } else {
- ke = me + 7;
- while (se < ke) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- ae >>>= me,
- se -= me,
- we = 0,
- ce = 11 + (127 & ae),
- ae >>>= 7,
- se -= 7
- }
- if (n.have + ce > n.nlen + n.ndist) {
- e.msg = "invalid bit length repeat",
- n.mode = X;
- break
- }
- while (ce--)
- n.lens[n.have++] = we
- }
- }
- if (n.mode === X)
- break;
- if (0 === n.lens[256]) {
- e.msg = "invalid code -- missing end-of-block",
- n.mode = X;
- break
- }
- if (n.lenbits = 9,
- Ee = {
- bits: n.lenbits
- },
- _e = a(l, n.lens, 0, n.nlen, n.lencode, 0, n.work, Ee),
- n.lenbits = Ee.bits,
- _e) {
- e.msg = "invalid literal/lengths set",
- n.mode = X;
- break
- }
- if (n.distbits = 6,
- n.distcode = n.distdyn,
- Ee = {
- bits: n.distbits
- },
- _e = a(u, n.lens, n.nlen, n.ndist, n.distcode, 0, n.work, Ee),
- n.distbits = Ee.bits,
- _e) {
- e.msg = "invalid distances set",
- n.mode = X;
- break
- }
- if (n.mode = 20,
- t === 6)
- break e;
- case 20:
- n.mode = 21;
- case 21:
- if (ie >= 6 && oe >= 258) {
- e.next_out = ne,
- e.avail_out = oe,
- e.next_in = te,
- e.avail_in = ie,
- n.hold = ae,
- n.bits = se,
- o(e, ue),
- ne = e.next_out,
- ee = e.output,
- oe = e.avail_out,
- te = e.next_in,
- Q = e.input,
- ie = e.avail_in,
- ae = n.hold,
- se = n.bits,
- n.mode === D && (n.back = -1);
- break
- }
- for (n.back = 0; ;) {
- if (Se = n.lencode[ae & (1 << n.lenbits) - 1],
- me = Se >>> 24,
- ve = Se >>> 16 & 255,
- ge = 65535 & Se,
- me <= se)
- break;
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- if (ve && 0 === (240 & ve)) {
- for (ye = me,
- be = ve,
- xe = ge; ;) {
- if (Se = n.lencode[xe + ((ae & (1 << ye + be) - 1) >> ye)],
- me = Se >>> 24,
- ve = Se >>> 16 & 255,
- ge = 65535 & Se,
- ye + me <= se)
- break;
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- ae >>>= ye,
- se -= ye,
- n.back += ye
- }
- if (ae >>>= me,
- se -= me,
- n.back += me,
- n.length = ge,
- 0 === ve) {
- n.mode = W;
- break
- }
- if (32 & ve) {
- n.back = -1,
- n.mode = D;
- break
- }
- if (64 & ve) {
- e.msg = "invalid literal/length code",
- n.mode = X;
- break
- }
- n.extra = 15 & ve,
- n.mode = 22;
- case 22:
- if (n.extra) {
- ke = n.extra;
- while (se < ke) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- n.length += ae & (1 << n.extra) - 1,
- ae >>>= n.extra,
- se -= n.extra,
- n.back += n.extra
- }
- n.was = n.length,
- n.mode = 23;
- case 23:
- for (; ;) {
- if (Se = n.distcode[ae & (1 << n.distbits) - 1],
- me = Se >>> 24,
- ve = Se >>> 16 & 255,
- ge = 65535 & Se,
- me <= se)
- break;
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- if (0 === (240 & ve)) {
- for (ye = me,
- be = ve,
- xe = ge; ;) {
- if (Se = n.distcode[xe + ((ae & (1 << ye + be) - 1) >> ye)],
- me = Se >>> 24,
- ve = Se >>> 16 & 255,
- ge = 65535 & Se,
- ye + me <= se)
- break;
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- ae >>>= ye,
- se -= ye,
- n.back += ye
- }
- if (ae >>>= me,
- se -= me,
- n.back += me,
- 64 & ve) {
- e.msg = "invalid distance code",
- n.mode = X;
- break
- }
- n.offset = ge,
- n.extra = 15 & ve,
- n.mode = 24;
- case 24:
- if (n.extra) {
- ke = n.extra;
- while (se < ke) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- n.offset += ae & (1 << n.extra) - 1,
- ae >>>= n.extra,
- se -= n.extra,
- n.back += n.extra
- }
- if (n.offset > n.dmax) {
- e.msg = "invalid distance too far back",
- n.mode = X;
- break
- }
- n.mode = 25;
- case 25:
- if (0 === oe)
- break e;
- if (ce = ue - oe,
- n.offset > ce) {
- if (ce = n.offset - ce,
- ce > n.whave && n.sane) {
- e.msg = "invalid distance too far back",
- n.mode = 30;
- break
- }
- ce > n.wnext ? (ce -= n.wnext,
- he = n.wsize - ce) : he = n.wnext - ce,
- ce > n.length && (ce = n.length),
- fe = n.window
- } else
- fe = ee,
- he = ne - n.offset,
- ce = n.length;
- ce > oe && (ce = oe),
- oe -= ce,
- n.length -= ce;
- do {
- ee[ne++] = fe[he++]
- } while (--ce);
- 0 === n.length && (n.mode = z);
- break;
- case 26:
- if (0 === oe)
- break e;
- ee[ne++] = n.length,
- oe--,
- n.mode = 21;
- break;
- case 27:
- if (n.wrap) {
- while (se < 32) {
- if (0 === ie)
- break e;
- ie--,
- ae |= Q[te++] << se,
- se += 8
- }
- if (ue -= oe,
- e.total_out += ue,
- n.total += ue,
- ue && (e.adler = n.check = n.flags ? i(n.check, ee, ue, ne - ue) : r(n.check, ee, ue, ne - ue)),
- ue = oe,
- (n.flags ? ae : re(ae)) !== n.check) {
- e.msg = "incorrect data check",
- n.mode = X;
- break
- }
- ae = 0,
- se = 0
- }
- n.mode = 28;
- case 28:
- if (n.wrap && n.flags) {
- while (se < 32) {
- if (0 === ie)
- break e;
- ie--,
- ae += Q[te++] << se,
- se += 8
- }
- if (ae !== (4294967295 & n.total)) {
- e.msg = "incorrect length check",
- n.mode = X;
- break
- }
- ae = 0,
- se = 0
- }
- n.mode = 29;
- case 29:
- _e = 1;
- break e;
- case 30:
- _e = -3;
- break e;
- case 31:
- return y;
- case 32:
- default:
- return v
- }
- return e.next_out = ne,
- e.avail_out = oe,
- e.next_in = te,
- e.avail_in = ie,
- n.hold = ae,
- n.bits = se,
- (n.wsize || ue !== e.avail_out && n.mode < 30 && (n.mode < 27 || t !== 4)) && pe(e, e.output, e.next_out, ue - e.avail_out) ? (n.mode = 31,
- -4) : (le -= e.avail_in,
- ue -= e.avail_out,
- e.total_in += le,
- e.total_out += ue,
- n.total += ue,
- n.wrap && ue && (e.adler = n.check = n.flags ? i(n.check, ee, ue, e.next_out - ue) : r(n.check, ee, ue, e.next_out - ue)),
- e.data_type = n.bits + (n.last ? 64 : 0) + (n.mode === 12 ? 128 : 0) + (n.mode === 20 || n.mode === 15 ? 256 : 0),
- (0 === le && 0 === ue || t === 4) && _e === d && (_e = b),
- _e)
- }
- function pusher(e, t) {
- const n = {
- "input": null,
- "next_in": 0,
- "avail_in": 0,
- "total_in": 0,
- "output": null,
- "next_out": 0,
- "avail_out": 0,
- "total_out": 0,
- "msg": "",
- "state": {
- "mode": 1,
- "last": 0,
- "wrap": 3,
- "havedict": 0,
- "flags": 0,
- "dmax": 32768,
- "check": 0,
- "total": 0,
- "head": {
- "text": 0,
- "time": 0,
- "xflags": 0,
- "os": 0,
- "extra": null,
- "extra_len": 0,
- "name": "",
- "comment": "",
- "hcrc": 0,
- "done": false
- },
- "wbits": 15,
- "wsize": 0,
- "whave": 0,
- "wnext": 0,
- "window": null,
- "hold": 0,
- "bits": 0,
- "length": 0,
- "offset": 0,
- "extra": 0,
- "lencode": {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "6": 0,
- "7": 0,
- "8": 0,
- "9": 0,
- "10": 0,
- "11": 0,
- "12": 0,
- "13": 0,
- "14": 0,
- "15": 0,
- "16": 0,
- "17": 0,
- "18": 0,
- "19": 0,
- "20": 0,
- "21": 0,
- "22": 0,
- "23": 0,
- "24": 0,
- "25": 0,
- "26": 0,
- "27": 0,
- "28": 0,
- "29": 0,
- "30": 0,
- "31": 0,
- "32": 0,
- "33": 0,
- "34": 0,
- "35": 0,
- "36": 0,
- "37": 0,
- "38": 0,
- "39": 0,
- "40": 0,
- "41": 0,
- "42": 0,
- "43": 0,
- "44": 0,
- "45": 0,
- "46": 0,
- "47": 0,
- "48": 0,
- "49": 0,
- "50": 0,
- "51": 0,
- "52": 0,
- "53": 0,
- "54": 0,
- "55": 0,
- "56": 0,
- "57": 0,
- "58": 0,
- "59": 0,
- "60": 0,
- "61": 0,
- "62": 0,
- "63": 0,
- "64": 0,
- "65": 0,
- "66": 0,
- "67": 0,
- "68": 0,
- "69": 0,
- "70": 0,
- "71": 0,
- "72": 0,
- "73": 0,
- "74": 0,
- "75": 0,
- "76": 0,
- "77": 0,
- "78": 0,
- "79": 0,
- "80": 0,
- "81": 0,
- "82": 0,
- "83": 0,
- "84": 0,
- "85": 0,
- "86": 0,
- "87": 0,
- "88": 0,
- "89": 0,
- "90": 0,
- "91": 0,
- "92": 0,
- "93": 0,
- "94": 0,
- "95": 0,
- "96": 0,
- "97": 0,
- "98": 0,
- "99": 0,
- "100": 0,
- "101": 0,
- "102": 0,
- "103": 0,
- "104": 0,
- "105": 0,
- "106": 0,
- "107": 0,
- "108": 0,
- "109": 0,
- "110": 0,
- "111": 0,
- "112": 0,
- "113": 0,
- "114": 0,
- "115": 0,
- "116": 0,
- "117": 0,
- "118": 0,
- "119": 0,
- "120": 0,
- "121": 0,
- "122": 0,
- "123": 0,
- "124": 0,
- "125": 0,
- "126": 0,
- "127": 0,
- "128": 0,
- "129": 0,
- "130": 0,
- "131": 0,
- "132": 0,
- "133": 0,
- "134": 0,
- "135": 0,
- "136": 0,
- "137": 0,
- "138": 0,
- "139": 0,
- "140": 0,
- "141": 0,
- "142": 0,
- "143": 0,
- "144": 0,
- "145": 0,
- "146": 0,
- "147": 0,
- "148": 0,
- "149": 0,
- "150": 0,
- "151": 0,
- "152": 0,
- "153": 0,
- "154": 0,
- "155": 0,
- "156": 0,
- "157": 0,
- "158": 0,
- "159": 0,
- "160": 0,
- "161": 0,
- "162": 0,
- "163": 0,
- "164": 0,
- "165": 0,
- "166": 0,
- "167": 0,
- "168": 0,
- "169": 0,
- "170": 0,
- "171": 0,
- "172": 0,
- "173": 0,
- "174": 0,
- "175": 0,
- "176": 0,
- "177": 0,
- "178": 0,
- "179": 0,
- "180": 0,
- "181": 0,
- "182": 0,
- "183": 0,
- "184": 0,
- "185": 0,
- "186": 0,
- "187": 0,
- "188": 0,
- "189": 0,
- "190": 0,
- "191": 0,
- "192": 0,
- "193": 0,
- "194": 0,
- "195": 0,
- "196": 0,
- "197": 0,
- "198": 0,
- "199": 0,
- "200": 0,
- "201": 0,
- "202": 0,
- "203": 0,
- "204": 0,
- "205": 0,
- "206": 0,
- "207": 0,
- "208": 0,
- "209": 0,
- "210": 0,
- "211": 0,
- "212": 0,
- "213": 0,
- "214": 0,
- "215": 0,
- "216": 0,
- "217": 0,
- "218": 0,
- "219": 0,
- "220": 0,
- "221": 0,
- "222": 0,
- "223": 0,
- "224": 0,
- "225": 0,
- "226": 0,
- "227": 0,
- "228": 0,
- "229": 0,
- "230": 0,
- "231": 0,
- "232": 0,
- "233": 0,
- "234": 0,
- "235": 0,
- "236": 0,
- "237": 0,
- "238": 0,
- "239": 0,
- "240": 0,
- "241": 0,
- "242": 0,
- "243": 0,
- "244": 0,
- "245": 0,
- "246": 0,
- "247": 0,
- "248": 0,
- "249": 0,
- "250": 0,
- "251": 0,
- "252": 0,
- "253": 0,
- "254": 0,
- "255": 0,
- "256": 0,
- "257": 0,
- "258": 0,
- "259": 0,
- "260": 0,
- "261": 0,
- "262": 0,
- "263": 0,
- "264": 0,
- "265": 0,
- "266": 0,
- "267": 0,
- "268": 0,
- "269": 0,
- "270": 0,
- "271": 0,
- "272": 0,
- "273": 0,
- "274": 0,
- "275": 0,
- "276": 0,
- "277": 0,
- "278": 0,
- "279": 0,
- "280": 0,
- "281": 0,
- "282": 0,
- "283": 0,
- "284": 0,
- "285": 0,
- "286": 0,
- "287": 0,
- "288": 0,
- "289": 0,
- "290": 0,
- "291": 0,
- "292": 0,
- "293": 0,
- "294": 0,
- "295": 0,
- "296": 0,
- "297": 0,
- "298": 0,
- "299": 0,
- "300": 0,
- "301": 0,
- "302": 0,
- "303": 0,
- "304": 0,
- "305": 0,
- "306": 0,
- "307": 0,
- "308": 0,
- "309": 0,
- "310": 0,
- "311": 0,
- "312": 0,
- "313": 0,
- "314": 0,
- "315": 0,
- "316": 0,
- "317": 0,
- "318": 0,
- "319": 0,
- "320": 0,
- "321": 0,
- "322": 0,
- "323": 0,
- "324": 0,
- "325": 0,
- "326": 0,
- "327": 0,
- "328": 0,
- "329": 0,
- "330": 0,
- "331": 0,
- "332": 0,
- "333": 0,
- "334": 0,
- "335": 0,
- "336": 0,
- "337": 0,
- "338": 0,
- "339": 0,
- "340": 0,
- "341": 0,
- "342": 0,
- "343": 0,
- "344": 0,
- "345": 0,
- "346": 0,
- "347": 0,
- "348": 0,
- "349": 0,
- "350": 0,
- "351": 0,
- "352": 0,
- "353": 0,
- "354": 0,
- "355": 0,
- "356": 0,
- "357": 0,
- "358": 0,
- "359": 0,
- "360": 0,
- "361": 0,
- "362": 0,
- "363": 0,
- "364": 0,
- "365": 0,
- "366": 0,
- "367": 0,
- "368": 0,
- "369": 0,
- "370": 0,
- "371": 0,
- "372": 0,
- "373": 0,
- "374": 0,
- "375": 0,
- "376": 0,
- "377": 0,
- "378": 0,
- "379": 0,
- "380": 0,
- "381": 0,
- "382": 0,
- "383": 0,
- "384": 0,
- "385": 0,
- "386": 0,
- "387": 0,
- "388": 0,
- "389": 0,
- "390": 0,
- "391": 0,
- "392": 0,
- "393": 0,
- "394": 0,
- "395": 0,
- "396": 0,
- "397": 0,
- "398": 0,
- "399": 0,
- "400": 0,
- "401": 0,
- "402": 0,
- "403": 0,
- "404": 0,
- "405": 0,
- "406": 0,
- "407": 0,
- "408": 0,
- "409": 0,
- "410": 0,
- "411": 0,
- "412": 0,
- "413": 0,
- "414": 0,
- "415": 0,
- "416": 0,
- "417": 0,
- "418": 0,
- "419": 0,
- "420": 0,
- "421": 0,
- "422": 0,
- "423": 0,
- "424": 0,
- "425": 0,
- "426": 0,
- "427": 0,
- "428": 0,
- "429": 0,
- "430": 0,
- "431": 0,
- "432": 0,
- "433": 0,
- "434": 0,
- "435": 0,
- "436": 0,
- "437": 0,
- "438": 0,
- "439": 0,
- "440": 0,
- "441": 0,
- "442": 0,
- "443": 0,
- "444": 0,
- "445": 0,
- "446": 0,
- "447": 0,
- "448": 0,
- "449": 0,
- "450": 0,
- "451": 0,
- "452": 0,
- "453": 0,
- "454": 0,
- "455": 0,
- "456": 0,
- "457": 0,
- "458": 0,
- "459": 0,
- "460": 0,
- "461": 0,
- "462": 0,
- "463": 0,
- "464": 0,
- "465": 0,
- "466": 0,
- "467": 0,
- "468": 0,
- "469": 0,
- "470": 0,
- "471": 0,
- "472": 0,
- "473": 0,
- "474": 0,
- "475": 0,
- "476": 0,
- "477": 0,
- "478": 0,
- "479": 0,
- "480": 0,
- "481": 0,
- "482": 0,
- "483": 0,
- "484": 0,
- "485": 0,
- "486": 0,
- "487": 0,
- "488": 0,
- "489": 0,
- "490": 0,
- "491": 0,
- "492": 0,
- "493": 0,
- "494": 0,
- "495": 0,
- "496": 0,
- "497": 0,
- "498": 0,
- "499": 0,
- "500": 0,
- "501": 0,
- "502": 0,
- "503": 0,
- "504": 0,
- "505": 0,
- "506": 0,
- "507": 0,
- "508": 0,
- "509": 0,
- "510": 0,
- "511": 0,
- "512": 0,
- "513": 0,
- "514": 0,
- "515": 0,
- "516": 0,
- "517": 0,
- "518": 0,
- "519": 0,
- "520": 0,
- "521": 0,
- "522": 0,
- "523": 0,
- "524": 0,
- "525": 0,
- "526": 0,
- "527": 0,
- "528": 0,
- "529": 0,
- "530": 0,
- "531": 0,
- "532": 0,
- "533": 0,
- "534": 0,
- "535": 0,
- "536": 0,
- "537": 0,
- "538": 0,
- "539": 0,
- "540": 0,
- "541": 0,
- "542": 0,
- "543": 0,
- "544": 0,
- "545": 0,
- "546": 0,
- "547": 0,
- "548": 0,
- "549": 0,
- "550": 0,
- "551": 0,
- "552": 0,
- "553": 0,
- "554": 0,
- "555": 0,
- "556": 0,
- "557": 0,
- "558": 0,
- "559": 0,
- "560": 0,
- "561": 0,
- "562": 0,
- "563": 0,
- "564": 0,
- "565": 0,
- "566": 0,
- "567": 0,
- "568": 0,
- "569": 0,
- "570": 0,
- "571": 0,
- "572": 0,
- "573": 0,
- "574": 0,
- "575": 0,
- "576": 0,
- "577": 0,
- "578": 0,
- "579": 0,
- "580": 0,
- "581": 0,
- "582": 0,
- "583": 0,
- "584": 0,
- "585": 0,
- "586": 0,
- "587": 0,
- "588": 0,
- "589": 0,
- "590": 0,
- "591": 0,
- "592": 0,
- "593": 0,
- "594": 0,
- "595": 0,
- "596": 0,
- "597": 0,
- "598": 0,
- "599": 0,
- "600": 0,
- "601": 0,
- "602": 0,
- "603": 0,
- "604": 0,
- "605": 0,
- "606": 0,
- "607": 0,
- "608": 0,
- "609": 0,
- "610": 0,
- "611": 0,
- "612": 0,
- "613": 0,
- "614": 0,
- "615": 0,
- "616": 0,
- "617": 0,
- "618": 0,
- "619": 0,
- "620": 0,
- "621": 0,
- "622": 0,
- "623": 0,
- "624": 0,
- "625": 0,
- "626": 0,
- "627": 0,
- "628": 0,
- "629": 0,
- "630": 0,
- "631": 0,
- "632": 0,
- "633": 0,
- "634": 0,
- "635": 0,
- "636": 0,
- "637": 0,
- "638": 0,
- "639": 0,
- "640": 0,
- "641": 0,
- "642": 0,
- "643": 0,
- "644": 0,
- "645": 0,
- "646": 0,
- "647": 0,
- "648": 0,
- "649": 0,
- "650": 0,
- "651": 0,
- "652": 0,
- "653": 0,
- "654": 0,
- "655": 0,
- "656": 0,
- "657": 0,
- "658": 0,
- "659": 0,
- "660": 0,
- "661": 0,
- "662": 0,
- "663": 0,
- "664": 0,
- "665": 0,
- "666": 0,
- "667": 0,
- "668": 0,
- "669": 0,
- "670": 0,
- "671": 0,
- "672": 0,
- "673": 0,
- "674": 0,
- "675": 0,
- "676": 0,
- "677": 0,
- "678": 0,
- "679": 0,
- "680": 0,
- "681": 0,
- "682": 0,
- "683": 0,
- "684": 0,
- "685": 0,
- "686": 0,
- "687": 0,
- "688": 0,
- "689": 0,
- "690": 0,
- "691": 0,
- "692": 0,
- "693": 0,
- "694": 0,
- "695": 0,
- "696": 0,
- "697": 0,
- "698": 0,
- "699": 0,
- "700": 0,
- "701": 0,
- "702": 0,
- "703": 0,
- "704": 0,
- "705": 0,
- "706": 0,
- "707": 0,
- "708": 0,
- "709": 0,
- "710": 0,
- "711": 0,
- "712": 0,
- "713": 0,
- "714": 0,
- "715": 0,
- "716": 0,
- "717": 0,
- "718": 0,
- "719": 0,
- "720": 0,
- "721": 0,
- "722": 0,
- "723": 0,
- "724": 0,
- "725": 0,
- "726": 0,
- "727": 0,
- "728": 0,
- "729": 0,
- "730": 0,
- "731": 0,
- "732": 0,
- "733": 0,
- "734": 0,
- "735": 0,
- "736": 0,
- "737": 0,
- "738": 0,
- "739": 0,
- "740": 0,
- "741": 0,
- "742": 0,
- "743": 0,
- "744": 0,
- "745": 0,
- "746": 0,
- "747": 0,
- "748": 0,
- "749": 0,
- "750": 0,
- "751": 0,
- "752": 0,
- "753": 0,
- "754": 0,
- "755": 0,
- "756": 0,
- "757": 0,
- "758": 0,
- "759": 0,
- "760": 0,
- "761": 0,
- "762": 0,
- "763": 0,
- "764": 0,
- "765": 0,
- "766": 0,
- "767": 0,
- "768": 0,
- "769": 0,
- "770": 0,
- "771": 0,
- "772": 0,
- "773": 0,
- "774": 0,
- "775": 0,
- "776": 0,
- "777": 0,
- "778": 0,
- "779": 0,
- "780": 0,
- "781": 0,
- "782": 0,
- "783": 0,
- "784": 0,
- "785": 0,
- "786": 0,
- "787": 0,
- "788": 0,
- "789": 0,
- "790": 0,
- "791": 0,
- "792": 0,
- "793": 0,
- "794": 0,
- "795": 0,
- "796": 0,
- "797": 0,
- "798": 0,
- "799": 0,
- "800": 0,
- "801": 0,
- "802": 0,
- "803": 0,
- "804": 0,
- "805": 0,
- "806": 0,
- "807": 0,
- "808": 0,
- "809": 0,
- "810": 0,
- "811": 0,
- "812": 0,
- "813": 0,
- "814": 0,
- "815": 0,
- "816": 0,
- "817": 0,
- "818": 0,
- "819": 0,
- "820": 0,
- "821": 0,
- "822": 0,
- "823": 0,
- "824": 0,
- "825": 0,
- "826": 0,
- "827": 0,
- "828": 0,
- "829": 0,
- "830": 0,
- "831": 0,
- "832": 0,
- "833": 0,
- "834": 0,
- "835": 0,
- "836": 0,
- "837": 0,
- "838": 0,
- "839": 0,
- "840": 0,
- "841": 0,
- "842": 0,
- "843": 0,
- "844": 0,
- "845": 0,
- "846": 0,
- "847": 0,
- "848": 0,
- "849": 0,
- "850": 0,
- "851": 0
- },
- "distcode": {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "6": 0,
- "7": 0,
- "8": 0,
- "9": 0,
- "10": 0,
- "11": 0,
- "12": 0,
- "13": 0,
- "14": 0,
- "15": 0,
- "16": 0,
- "17": 0,
- "18": 0,
- "19": 0,
- "20": 0,
- "21": 0,
- "22": 0,
- "23": 0,
- "24": 0,
- "25": 0,
- "26": 0,
- "27": 0,
- "28": 0,
- "29": 0,
- "30": 0,
- "31": 0,
- "32": 0,
- "33": 0,
- "34": 0,
- "35": 0,
- "36": 0,
- "37": 0,
- "38": 0,
- "39": 0,
- "40": 0,
- "41": 0,
- "42": 0,
- "43": 0,
- "44": 0,
- "45": 0,
- "46": 0,
- "47": 0,
- "48": 0,
- "49": 0,
- "50": 0,
- "51": 0,
- "52": 0,
- "53": 0,
- "54": 0,
- "55": 0,
- "56": 0,
- "57": 0,
- "58": 0,
- "59": 0,
- "60": 0,
- "61": 0,
- "62": 0,
- "63": 0,
- "64": 0,
- "65": 0,
- "66": 0,
- "67": 0,
- "68": 0,
- "69": 0,
- "70": 0,
- "71": 0,
- "72": 0,
- "73": 0,
- "74": 0,
- "75": 0,
- "76": 0,
- "77": 0,
- "78": 0,
- "79": 0,
- "80": 0,
- "81": 0,
- "82": 0,
- "83": 0,
- "84": 0,
- "85": 0,
- "86": 0,
- "87": 0,
- "88": 0,
- "89": 0,
- "90": 0,
- "91": 0,
- "92": 0,
- "93": 0,
- "94": 0,
- "95": 0,
- "96": 0,
- "97": 0,
- "98": 0,
- "99": 0,
- "100": 0,
- "101": 0,
- "102": 0,
- "103": 0,
- "104": 0,
- "105": 0,
- "106": 0,
- "107": 0,
- "108": 0,
- "109": 0,
- "110": 0,
- "111": 0,
- "112": 0,
- "113": 0,
- "114": 0,
- "115": 0,
- "116": 0,
- "117": 0,
- "118": 0,
- "119": 0,
- "120": 0,
- "121": 0,
- "122": 0,
- "123": 0,
- "124": 0,
- "125": 0,
- "126": 0,
- "127": 0,
- "128": 0,
- "129": 0,
- "130": 0,
- "131": 0,
- "132": 0,
- "133": 0,
- "134": 0,
- "135": 0,
- "136": 0,
- "137": 0,
- "138": 0,
- "139": 0,
- "140": 0,
- "141": 0,
- "142": 0,
- "143": 0,
- "144": 0,
- "145": 0,
- "146": 0,
- "147": 0,
- "148": 0,
- "149": 0,
- "150": 0,
- "151": 0,
- "152": 0,
- "153": 0,
- "154": 0,
- "155": 0,
- "156": 0,
- "157": 0,
- "158": 0,
- "159": 0,
- "160": 0,
- "161": 0,
- "162": 0,
- "163": 0,
- "164": 0,
- "165": 0,
- "166": 0,
- "167": 0,
- "168": 0,
- "169": 0,
- "170": 0,
- "171": 0,
- "172": 0,
- "173": 0,
- "174": 0,
- "175": 0,
- "176": 0,
- "177": 0,
- "178": 0,
- "179": 0,
- "180": 0,
- "181": 0,
- "182": 0,
- "183": 0,
- "184": 0,
- "185": 0,
- "186": 0,
- "187": 0,
- "188": 0,
- "189": 0,
- "190": 0,
- "191": 0,
- "192": 0,
- "193": 0,
- "194": 0,
- "195": 0,
- "196": 0,
- "197": 0,
- "198": 0,
- "199": 0,
- "200": 0,
- "201": 0,
- "202": 0,
- "203": 0,
- "204": 0,
- "205": 0,
- "206": 0,
- "207": 0,
- "208": 0,
- "209": 0,
- "210": 0,
- "211": 0,
- "212": 0,
- "213": 0,
- "214": 0,
- "215": 0,
- "216": 0,
- "217": 0,
- "218": 0,
- "219": 0,
- "220": 0,
- "221": 0,
- "222": 0,
- "223": 0,
- "224": 0,
- "225": 0,
- "226": 0,
- "227": 0,
- "228": 0,
- "229": 0,
- "230": 0,
- "231": 0,
- "232": 0,
- "233": 0,
- "234": 0,
- "235": 0,
- "236": 0,
- "237": 0,
- "238": 0,
- "239": 0,
- "240": 0,
- "241": 0,
- "242": 0,
- "243": 0,
- "244": 0,
- "245": 0,
- "246": 0,
- "247": 0,
- "248": 0,
- "249": 0,
- "250": 0,
- "251": 0,
- "252": 0,
- "253": 0,
- "254": 0,
- "255": 0,
- "256": 0,
- "257": 0,
- "258": 0,
- "259": 0,
- "260": 0,
- "261": 0,
- "262": 0,
- "263": 0,
- "264": 0,
- "265": 0,
- "266": 0,
- "267": 0,
- "268": 0,
- "269": 0,
- "270": 0,
- "271": 0,
- "272": 0,
- "273": 0,
- "274": 0,
- "275": 0,
- "276": 0,
- "277": 0,
- "278": 0,
- "279": 0,
- "280": 0,
- "281": 0,
- "282": 0,
- "283": 0,
- "284": 0,
- "285": 0,
- "286": 0,
- "287": 0,
- "288": 0,
- "289": 0,
- "290": 0,
- "291": 0,
- "292": 0,
- "293": 0,
- "294": 0,
- "295": 0,
- "296": 0,
- "297": 0,
- "298": 0,
- "299": 0,
- "300": 0,
- "301": 0,
- "302": 0,
- "303": 0,
- "304": 0,
- "305": 0,
- "306": 0,
- "307": 0,
- "308": 0,
- "309": 0,
- "310": 0,
- "311": 0,
- "312": 0,
- "313": 0,
- "314": 0,
- "315": 0,
- "316": 0,
- "317": 0,
- "318": 0,
- "319": 0,
- "320": 0,
- "321": 0,
- "322": 0,
- "323": 0,
- "324": 0,
- "325": 0,
- "326": 0,
- "327": 0,
- "328": 0,
- "329": 0,
- "330": 0,
- "331": 0,
- "332": 0,
- "333": 0,
- "334": 0,
- "335": 0,
- "336": 0,
- "337": 0,
- "338": 0,
- "339": 0,
- "340": 0,
- "341": 0,
- "342": 0,
- "343": 0,
- "344": 0,
- "345": 0,
- "346": 0,
- "347": 0,
- "348": 0,
- "349": 0,
- "350": 0,
- "351": 0,
- "352": 0,
- "353": 0,
- "354": 0,
- "355": 0,
- "356": 0,
- "357": 0,
- "358": 0,
- "359": 0,
- "360": 0,
- "361": 0,
- "362": 0,
- "363": 0,
- "364": 0,
- "365": 0,
- "366": 0,
- "367": 0,
- "368": 0,
- "369": 0,
- "370": 0,
- "371": 0,
- "372": 0,
- "373": 0,
- "374": 0,
- "375": 0,
- "376": 0,
- "377": 0,
- "378": 0,
- "379": 0,
- "380": 0,
- "381": 0,
- "382": 0,
- "383": 0,
- "384": 0,
- "385": 0,
- "386": 0,
- "387": 0,
- "388": 0,
- "389": 0,
- "390": 0,
- "391": 0,
- "392": 0,
- "393": 0,
- "394": 0,
- "395": 0,
- "396": 0,
- "397": 0,
- "398": 0,
- "399": 0,
- "400": 0,
- "401": 0,
- "402": 0,
- "403": 0,
- "404": 0,
- "405": 0,
- "406": 0,
- "407": 0,
- "408": 0,
- "409": 0,
- "410": 0,
- "411": 0,
- "412": 0,
- "413": 0,
- "414": 0,
- "415": 0,
- "416": 0,
- "417": 0,
- "418": 0,
- "419": 0,
- "420": 0,
- "421": 0,
- "422": 0,
- "423": 0,
- "424": 0,
- "425": 0,
- "426": 0,
- "427": 0,
- "428": 0,
- "429": 0,
- "430": 0,
- "431": 0,
- "432": 0,
- "433": 0,
- "434": 0,
- "435": 0,
- "436": 0,
- "437": 0,
- "438": 0,
- "439": 0,
- "440": 0,
- "441": 0,
- "442": 0,
- "443": 0,
- "444": 0,
- "445": 0,
- "446": 0,
- "447": 0,
- "448": 0,
- "449": 0,
- "450": 0,
- "451": 0,
- "452": 0,
- "453": 0,
- "454": 0,
- "455": 0,
- "456": 0,
- "457": 0,
- "458": 0,
- "459": 0,
- "460": 0,
- "461": 0,
- "462": 0,
- "463": 0,
- "464": 0,
- "465": 0,
- "466": 0,
- "467": 0,
- "468": 0,
- "469": 0,
- "470": 0,
- "471": 0,
- "472": 0,
- "473": 0,
- "474": 0,
- "475": 0,
- "476": 0,
- "477": 0,
- "478": 0,
- "479": 0,
- "480": 0,
- "481": 0,
- "482": 0,
- "483": 0,
- "484": 0,
- "485": 0,
- "486": 0,
- "487": 0,
- "488": 0,
- "489": 0,
- "490": 0,
- "491": 0,
- "492": 0,
- "493": 0,
- "494": 0,
- "495": 0,
- "496": 0,
- "497": 0,
- "498": 0,
- "499": 0,
- "500": 0,
- "501": 0,
- "502": 0,
- "503": 0,
- "504": 0,
- "505": 0,
- "506": 0,
- "507": 0,
- "508": 0,
- "509": 0,
- "510": 0,
- "511": 0,
- "512": 0,
- "513": 0,
- "514": 0,
- "515": 0,
- "516": 0,
- "517": 0,
- "518": 0,
- "519": 0,
- "520": 0,
- "521": 0,
- "522": 0,
- "523": 0,
- "524": 0,
- "525": 0,
- "526": 0,
- "527": 0,
- "528": 0,
- "529": 0,
- "530": 0,
- "531": 0,
- "532": 0,
- "533": 0,
- "534": 0,
- "535": 0,
- "536": 0,
- "537": 0,
- "538": 0,
- "539": 0,
- "540": 0,
- "541": 0,
- "542": 0,
- "543": 0,
- "544": 0,
- "545": 0,
- "546": 0,
- "547": 0,
- "548": 0,
- "549": 0,
- "550": 0,
- "551": 0,
- "552": 0,
- "553": 0,
- "554": 0,
- "555": 0,
- "556": 0,
- "557": 0,
- "558": 0,
- "559": 0,
- "560": 0,
- "561": 0,
- "562": 0,
- "563": 0,
- "564": 0,
- "565": 0,
- "566": 0,
- "567": 0,
- "568": 0,
- "569": 0,
- "570": 0,
- "571": 0,
- "572": 0,
- "573": 0,
- "574": 0,
- "575": 0,
- "576": 0,
- "577": 0,
- "578": 0,
- "579": 0,
- "580": 0,
- "581": 0,
- "582": 0,
- "583": 0,
- "584": 0,
- "585": 0,
- "586": 0,
- "587": 0,
- "588": 0,
- "589": 0,
- "590": 0,
- "591": 0
- },
- "lenbits": 0,
- "distbits": 0,
- "ncode": 0,
- "nlen": 0,
- "ndist": 0,
- "have": 0,
- "next": null,
- "lens": {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "6": 0,
- "7": 0,
- "8": 0,
- "9": 0,
- "10": 0,
- "11": 0,
- "12": 0,
- "13": 0,
- "14": 0,
- "15": 0,
- "16": 0,
- "17": 0,
- "18": 0,
- "19": 0,
- "20": 0,
- "21": 0,
- "22": 0,
- "23": 0,
- "24": 0,
- "25": 0,
- "26": 0,
- "27": 0,
- "28": 0,
- "29": 0,
- "30": 0,
- "31": 0,
- "32": 0,
- "33": 0,
- "34": 0,
- "35": 0,
- "36": 0,
- "37": 0,
- "38": 0,
- "39": 0,
- "40": 0,
- "41": 0,
- "42": 0,
- "43": 0,
- "44": 0,
- "45": 0,
- "46": 0,
- "47": 0,
- "48": 0,
- "49": 0,
- "50": 0,
- "51": 0,
- "52": 0,
- "53": 0,
- "54": 0,
- "55": 0,
- "56": 0,
- "57": 0,
- "58": 0,
- "59": 0,
- "60": 0,
- "61": 0,
- "62": 0,
- "63": 0,
- "64": 0,
- "65": 0,
- "66": 0,
- "67": 0,
- "68": 0,
- "69": 0,
- "70": 0,
- "71": 0,
- "72": 0,
- "73": 0,
- "74": 0,
- "75": 0,
- "76": 0,
- "77": 0,
- "78": 0,
- "79": 0,
- "80": 0,
- "81": 0,
- "82": 0,
- "83": 0,
- "84": 0,
- "85": 0,
- "86": 0,
- "87": 0,
- "88": 0,
- "89": 0,
- "90": 0,
- "91": 0,
- "92": 0,
- "93": 0,
- "94": 0,
- "95": 0,
- "96": 0,
- "97": 0,
- "98": 0,
- "99": 0,
- "100": 0,
- "101": 0,
- "102": 0,
- "103": 0,
- "104": 0,
- "105": 0,
- "106": 0,
- "107": 0,
- "108": 0,
- "109": 0,
- "110": 0,
- "111": 0,
- "112": 0,
- "113": 0,
- "114": 0,
- "115": 0,
- "116": 0,
- "117": 0,
- "118": 0,
- "119": 0,
- "120": 0,
- "121": 0,
- "122": 0,
- "123": 0,
- "124": 0,
- "125": 0,
- "126": 0,
- "127": 0,
- "128": 0,
- "129": 0,
- "130": 0,
- "131": 0,
- "132": 0,
- "133": 0,
- "134": 0,
- "135": 0,
- "136": 0,
- "137": 0,
- "138": 0,
- "139": 0,
- "140": 0,
- "141": 0,
- "142": 0,
- "143": 0,
- "144": 0,
- "145": 0,
- "146": 0,
- "147": 0,
- "148": 0,
- "149": 0,
- "150": 0,
- "151": 0,
- "152": 0,
- "153": 0,
- "154": 0,
- "155": 0,
- "156": 0,
- "157": 0,
- "158": 0,
- "159": 0,
- "160": 0,
- "161": 0,
- "162": 0,
- "163": 0,
- "164": 0,
- "165": 0,
- "166": 0,
- "167": 0,
- "168": 0,
- "169": 0,
- "170": 0,
- "171": 0,
- "172": 0,
- "173": 0,
- "174": 0,
- "175": 0,
- "176": 0,
- "177": 0,
- "178": 0,
- "179": 0,
- "180": 0,
- "181": 0,
- "182": 0,
- "183": 0,
- "184": 0,
- "185": 0,
- "186": 0,
- "187": 0,
- "188": 0,
- "189": 0,
- "190": 0,
- "191": 0,
- "192": 0,
- "193": 0,
- "194": 0,
- "195": 0,
- "196": 0,
- "197": 0,
- "198": 0,
- "199": 0,
- "200": 0,
- "201": 0,
- "202": 0,
- "203": 0,
- "204": 0,
- "205": 0,
- "206": 0,
- "207": 0,
- "208": 0,
- "209": 0,
- "210": 0,
- "211": 0,
- "212": 0,
- "213": 0,
- "214": 0,
- "215": 0,
- "216": 0,
- "217": 0,
- "218": 0,
- "219": 0,
- "220": 0,
- "221": 0,
- "222": 0,
- "223": 0,
- "224": 0,
- "225": 0,
- "226": 0,
- "227": 0,
- "228": 0,
- "229": 0,
- "230": 0,
- "231": 0,
- "232": 0,
- "233": 0,
- "234": 0,
- "235": 0,
- "236": 0,
- "237": 0,
- "238": 0,
- "239": 0,
- "240": 0,
- "241": 0,
- "242": 0,
- "243": 0,
- "244": 0,
- "245": 0,
- "246": 0,
- "247": 0,
- "248": 0,
- "249": 0,
- "250": 0,
- "251": 0,
- "252": 0,
- "253": 0,
- "254": 0,
- "255": 0,
- "256": 0,
- "257": 0,
- "258": 0,
- "259": 0,
- "260": 0,
- "261": 0,
- "262": 0,
- "263": 0,
- "264": 0,
- "265": 0,
- "266": 0,
- "267": 0,
- "268": 0,
- "269": 0,
- "270": 0,
- "271": 0,
- "272": 0,
- "273": 0,
- "274": 0,
- "275": 0,
- "276": 0,
- "277": 0,
- "278": 0,
- "279": 0,
- "280": 0,
- "281": 0,
- "282": 0,
- "283": 0,
- "284": 0,
- "285": 0,
- "286": 0,
- "287": 0,
- "288": 0,
- "289": 0,
- "290": 0,
- "291": 0,
- "292": 0,
- "293": 0,
- "294": 0,
- "295": 0,
- "296": 0,
- "297": 0,
- "298": 0,
- "299": 0,
- "300": 0,
- "301": 0,
- "302": 0,
- "303": 0,
- "304": 0,
- "305": 0,
- "306": 0,
- "307": 0,
- "308": 0,
- "309": 0,
- "310": 0,
- "311": 0,
- "312": 0,
- "313": 0,
- "314": 0,
- "315": 0,
- "316": 0,
- "317": 0,
- "318": 0,
- "319": 0
- },
- "work": {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "6": 0,
- "7": 0,
- "8": 0,
- "9": 0,
- "10": 0,
- "11": 0,
- "12": 0,
- "13": 0,
- "14": 0,
- "15": 0,
- "16": 0,
- "17": 0,
- "18": 0,
- "19": 0,
- "20": 0,
- "21": 0,
- "22": 0,
- "23": 0,
- "24": 0,
- "25": 0,
- "26": 0,
- "27": 0,
- "28": 0,
- "29": 0,
- "30": 0,
- "31": 0,
- "32": 0,
- "33": 0,
- "34": 0,
- "35": 0,
- "36": 0,
- "37": 0,
- "38": 0,
- "39": 0,
- "40": 0,
- "41": 0,
- "42": 0,
- "43": 0,
- "44": 0,
- "45": 0,
- "46": 0,
- "47": 0,
- "48": 0,
- "49": 0,
- "50": 0,
- "51": 0,
- "52": 0,
- "53": 0,
- "54": 0,
- "55": 0,
- "56": 0,
- "57": 0,
- "58": 0,
- "59": 0,
- "60": 0,
- "61": 0,
- "62": 0,
- "63": 0,
- "64": 0,
- "65": 0,
- "66": 0,
- "67": 0,
- "68": 0,
- "69": 0,
- "70": 0,
- "71": 0,
- "72": 0,
- "73": 0,
- "74": 0,
- "75": 0,
- "76": 0,
- "77": 0,
- "78": 0,
- "79": 0,
- "80": 0,
- "81": 0,
- "82": 0,
- "83": 0,
- "84": 0,
- "85": 0,
- "86": 0,
- "87": 0,
- "88": 0,
- "89": 0,
- "90": 0,
- "91": 0,
- "92": 0,
- "93": 0,
- "94": 0,
- "95": 0,
- "96": 0,
- "97": 0,
- "98": 0,
- "99": 0,
- "100": 0,
- "101": 0,
- "102": 0,
- "103": 0,
- "104": 0,
- "105": 0,
- "106": 0,
- "107": 0,
- "108": 0,
- "109": 0,
- "110": 0,
- "111": 0,
- "112": 0,
- "113": 0,
- "114": 0,
- "115": 0,
- "116": 0,
- "117": 0,
- "118": 0,
- "119": 0,
- "120": 0,
- "121": 0,
- "122": 0,
- "123": 0,
- "124": 0,
- "125": 0,
- "126": 0,
- "127": 0,
- "128": 0,
- "129": 0,
- "130": 0,
- "131": 0,
- "132": 0,
- "133": 0,
- "134": 0,
- "135": 0,
- "136": 0,
- "137": 0,
- "138": 0,
- "139": 0,
- "140": 0,
- "141": 0,
- "142": 0,
- "143": 0,
- "144": 0,
- "145": 0,
- "146": 0,
- "147": 0,
- "148": 0,
- "149": 0,
- "150": 0,
- "151": 0,
- "152": 0,
- "153": 0,
- "154": 0,
- "155": 0,
- "156": 0,
- "157": 0,
- "158": 0,
- "159": 0,
- "160": 0,
- "161": 0,
- "162": 0,
- "163": 0,
- "164": 0,
- "165": 0,
- "166": 0,
- "167": 0,
- "168": 0,
- "169": 0,
- "170": 0,
- "171": 0,
- "172": 0,
- "173": 0,
- "174": 0,
- "175": 0,
- "176": 0,
- "177": 0,
- "178": 0,
- "179": 0,
- "180": 0,
- "181": 0,
- "182": 0,
- "183": 0,
- "184": 0,
- "185": 0,
- "186": 0,
- "187": 0,
- "188": 0,
- "189": 0,
- "190": 0,
- "191": 0,
- "192": 0,
- "193": 0,
- "194": 0,
- "195": 0,
- "196": 0,
- "197": 0,
- "198": 0,
- "199": 0,
- "200": 0,
- "201": 0,
- "202": 0,
- "203": 0,
- "204": 0,
- "205": 0,
- "206": 0,
- "207": 0,
- "208": 0,
- "209": 0,
- "210": 0,
- "211": 0,
- "212": 0,
- "213": 0,
- "214": 0,
- "215": 0,
- "216": 0,
- "217": 0,
- "218": 0,
- "219": 0,
- "220": 0,
- "221": 0,
- "222": 0,
- "223": 0,
- "224": 0,
- "225": 0,
- "226": 0,
- "227": 0,
- "228": 0,
- "229": 0,
- "230": 0,
- "231": 0,
- "232": 0,
- "233": 0,
- "234": 0,
- "235": 0,
- "236": 0,
- "237": 0,
- "238": 0,
- "239": 0,
- "240": 0,
- "241": 0,
- "242": 0,
- "243": 0,
- "244": 0,
- "245": 0,
- "246": 0,
- "247": 0,
- "248": 0,
- "249": 0,
- "250": 0,
- "251": 0,
- "252": 0,
- "253": 0,
- "254": 0,
- "255": 0,
- "256": 0,
- "257": 0,
- "258": 0,
- "259": 0,
- "260": 0,
- "261": 0,
- "262": 0,
- "263": 0,
- "264": 0,
- "265": 0,
- "266": 0,
- "267": 0,
- "268": 0,
- "269": 0,
- "270": 0,
- "271": 0,
- "272": 0,
- "273": 0,
- "274": 0,
- "275": 0,
- "276": 0,
- "277": 0,
- "278": 0,
- "279": 0,
- "280": 0,
- "281": 0,
- "282": 0,
- "283": 0,
- "284": 0,
- "285": 0,
- "286": 0,
- "287": 0
- },
- "lendyn": {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "6": 0,
- "7": 0,
- "8": 0,
- "9": 0,
- "10": 0,
- "11": 0,
- "12": 0,
- "13": 0,
- "14": 0,
- "15": 0,
- "16": 0,
- "17": 0,
- "18": 0,
- "19": 0,
- "20": 0,
- "21": 0,
- "22": 0,
- "23": 0,
- "24": 0,
- "25": 0,
- "26": 0,
- "27": 0,
- "28": 0,
- "29": 0,
- "30": 0,
- "31": 0,
- "32": 0,
- "33": 0,
- "34": 0,
- "35": 0,
- "36": 0,
- "37": 0,
- "38": 0,
- "39": 0,
- "40": 0,
- "41": 0,
- "42": 0,
- "43": 0,
- "44": 0,
- "45": 0,
- "46": 0,
- "47": 0,
- "48": 0,
- "49": 0,
- "50": 0,
- "51": 0,
- "52": 0,
- "53": 0,
- "54": 0,
- "55": 0,
- "56": 0,
- "57": 0,
- "58": 0,
- "59": 0,
- "60": 0,
- "61": 0,
- "62": 0,
- "63": 0,
- "64": 0,
- "65": 0,
- "66": 0,
- "67": 0,
- "68": 0,
- "69": 0,
- "70": 0,
- "71": 0,
- "72": 0,
- "73": 0,
- "74": 0,
- "75": 0,
- "76": 0,
- "77": 0,
- "78": 0,
- "79": 0,
- "80": 0,
- "81": 0,
- "82": 0,
- "83": 0,
- "84": 0,
- "85": 0,
- "86": 0,
- "87": 0,
- "88": 0,
- "89": 0,
- "90": 0,
- "91": 0,
- "92": 0,
- "93": 0,
- "94": 0,
- "95": 0,
- "96": 0,
- "97": 0,
- "98": 0,
- "99": 0,
- "100": 0,
- "101": 0,
- "102": 0,
- "103": 0,
- "104": 0,
- "105": 0,
- "106": 0,
- "107": 0,
- "108": 0,
- "109": 0,
- "110": 0,
- "111": 0,
- "112": 0,
- "113": 0,
- "114": 0,
- "115": 0,
- "116": 0,
- "117": 0,
- "118": 0,
- "119": 0,
- "120": 0,
- "121": 0,
- "122": 0,
- "123": 0,
- "124": 0,
- "125": 0,
- "126": 0,
- "127": 0,
- "128": 0,
- "129": 0,
- "130": 0,
- "131": 0,
- "132": 0,
- "133": 0,
- "134": 0,
- "135": 0,
- "136": 0,
- "137": 0,
- "138": 0,
- "139": 0,
- "140": 0,
- "141": 0,
- "142": 0,
- "143": 0,
- "144": 0,
- "145": 0,
- "146": 0,
- "147": 0,
- "148": 0,
- "149": 0,
- "150": 0,
- "151": 0,
- "152": 0,
- "153": 0,
- "154": 0,
- "155": 0,
- "156": 0,
- "157": 0,
- "158": 0,
- "159": 0,
- "160": 0,
- "161": 0,
- "162": 0,
- "163": 0,
- "164": 0,
- "165": 0,
- "166": 0,
- "167": 0,
- "168": 0,
- "169": 0,
- "170": 0,
- "171": 0,
- "172": 0,
- "173": 0,
- "174": 0,
- "175": 0,
- "176": 0,
- "177": 0,
- "178": 0,
- "179": 0,
- "180": 0,
- "181": 0,
- "182": 0,
- "183": 0,
- "184": 0,
- "185": 0,
- "186": 0,
- "187": 0,
- "188": 0,
- "189": 0,
- "190": 0,
- "191": 0,
- "192": 0,
- "193": 0,
- "194": 0,
- "195": 0,
- "196": 0,
- "197": 0,
- "198": 0,
- "199": 0,
- "200": 0,
- "201": 0,
- "202": 0,
- "203": 0,
- "204": 0,
- "205": 0,
- "206": 0,
- "207": 0,
- "208": 0,
- "209": 0,
- "210": 0,
- "211": 0,
- "212": 0,
- "213": 0,
- "214": 0,
- "215": 0,
- "216": 0,
- "217": 0,
- "218": 0,
- "219": 0,
- "220": 0,
- "221": 0,
- "222": 0,
- "223": 0,
- "224": 0,
- "225": 0,
- "226": 0,
- "227": 0,
- "228": 0,
- "229": 0,
- "230": 0,
- "231": 0,
- "232": 0,
- "233": 0,
- "234": 0,
- "235": 0,
- "236": 0,
- "237": 0,
- "238": 0,
- "239": 0,
- "240": 0,
- "241": 0,
- "242": 0,
- "243": 0,
- "244": 0,
- "245": 0,
- "246": 0,
- "247": 0,
- "248": 0,
- "249": 0,
- "250": 0,
- "251": 0,
- "252": 0,
- "253": 0,
- "254": 0,
- "255": 0,
- "256": 0,
- "257": 0,
- "258": 0,
- "259": 0,
- "260": 0,
- "261": 0,
- "262": 0,
- "263": 0,
- "264": 0,
- "265": 0,
- "266": 0,
- "267": 0,
- "268": 0,
- "269": 0,
- "270": 0,
- "271": 0,
- "272": 0,
- "273": 0,
- "274": 0,
- "275": 0,
- "276": 0,
- "277": 0,
- "278": 0,
- "279": 0,
- "280": 0,
- "281": 0,
- "282": 0,
- "283": 0,
- "284": 0,
- "285": 0,
- "286": 0,
- "287": 0,
- "288": 0,
- "289": 0,
- "290": 0,
- "291": 0,
- "292": 0,
- "293": 0,
- "294": 0,
- "295": 0,
- "296": 0,
- "297": 0,
- "298": 0,
- "299": 0,
- "300": 0,
- "301": 0,
- "302": 0,
- "303": 0,
- "304": 0,
- "305": 0,
- "306": 0,
- "307": 0,
- "308": 0,
- "309": 0,
- "310": 0,
- "311": 0,
- "312": 0,
- "313": 0,
- "314": 0,
- "315": 0,
- "316": 0,
- "317": 0,
- "318": 0,
- "319": 0,
- "320": 0,
- "321": 0,
- "322": 0,
- "323": 0,
- "324": 0,
- "325": 0,
- "326": 0,
- "327": 0,
- "328": 0,
- "329": 0,
- "330": 0,
- "331": 0,
- "332": 0,
- "333": 0,
- "334": 0,
- "335": 0,
- "336": 0,
- "337": 0,
- "338": 0,
- "339": 0,
- "340": 0,
- "341": 0,
- "342": 0,
- "343": 0,
- "344": 0,
- "345": 0,
- "346": 0,
- "347": 0,
- "348": 0,
- "349": 0,
- "350": 0,
- "351": 0,
- "352": 0,
- "353": 0,
- "354": 0,
- "355": 0,
- "356": 0,
- "357": 0,
- "358": 0,
- "359": 0,
- "360": 0,
- "361": 0,
- "362": 0,
- "363": 0,
- "364": 0,
- "365": 0,
- "366": 0,
- "367": 0,
- "368": 0,
- "369": 0,
- "370": 0,
- "371": 0,
- "372": 0,
- "373": 0,
- "374": 0,
- "375": 0,
- "376": 0,
- "377": 0,
- "378": 0,
- "379": 0,
- "380": 0,
- "381": 0,
- "382": 0,
- "383": 0,
- "384": 0,
- "385": 0,
- "386": 0,
- "387": 0,
- "388": 0,
- "389": 0,
- "390": 0,
- "391": 0,
- "392": 0,
- "393": 0,
- "394": 0,
- "395": 0,
- "396": 0,
- "397": 0,
- "398": 0,
- "399": 0,
- "400": 0,
- "401": 0,
- "402": 0,
- "403": 0,
- "404": 0,
- "405": 0,
- "406": 0,
- "407": 0,
- "408": 0,
- "409": 0,
- "410": 0,
- "411": 0,
- "412": 0,
- "413": 0,
- "414": 0,
- "415": 0,
- "416": 0,
- "417": 0,
- "418": 0,
- "419": 0,
- "420": 0,
- "421": 0,
- "422": 0,
- "423": 0,
- "424": 0,
- "425": 0,
- "426": 0,
- "427": 0,
- "428": 0,
- "429": 0,
- "430": 0,
- "431": 0,
- "432": 0,
- "433": 0,
- "434": 0,
- "435": 0,
- "436": 0,
- "437": 0,
- "438": 0,
- "439": 0,
- "440": 0,
- "441": 0,
- "442": 0,
- "443": 0,
- "444": 0,
- "445": 0,
- "446": 0,
- "447": 0,
- "448": 0,
- "449": 0,
- "450": 0,
- "451": 0,
- "452": 0,
- "453": 0,
- "454": 0,
- "455": 0,
- "456": 0,
- "457": 0,
- "458": 0,
- "459": 0,
- "460": 0,
- "461": 0,
- "462": 0,
- "463": 0,
- "464": 0,
- "465": 0,
- "466": 0,
- "467": 0,
- "468": 0,
- "469": 0,
- "470": 0,
- "471": 0,
- "472": 0,
- "473": 0,
- "474": 0,
- "475": 0,
- "476": 0,
- "477": 0,
- "478": 0,
- "479": 0,
- "480": 0,
- "481": 0,
- "482": 0,
- "483": 0,
- "484": 0,
- "485": 0,
- "486": 0,
- "487": 0,
- "488": 0,
- "489": 0,
- "490": 0,
- "491": 0,
- "492": 0,
- "493": 0,
- "494": 0,
- "495": 0,
- "496": 0,
- "497": 0,
- "498": 0,
- "499": 0,
- "500": 0,
- "501": 0,
- "502": 0,
- "503": 0,
- "504": 0,
- "505": 0,
- "506": 0,
- "507": 0,
- "508": 0,
- "509": 0,
- "510": 0,
- "511": 0,
- "512": 0,
- "513": 0,
- "514": 0,
- "515": 0,
- "516": 0,
- "517": 0,
- "518": 0,
- "519": 0,
- "520": 0,
- "521": 0,
- "522": 0,
- "523": 0,
- "524": 0,
- "525": 0,
- "526": 0,
- "527": 0,
- "528": 0,
- "529": 0,
- "530": 0,
- "531": 0,
- "532": 0,
- "533": 0,
- "534": 0,
- "535": 0,
- "536": 0,
- "537": 0,
- "538": 0,
- "539": 0,
- "540": 0,
- "541": 0,
- "542": 0,
- "543": 0,
- "544": 0,
- "545": 0,
- "546": 0,
- "547": 0,
- "548": 0,
- "549": 0,
- "550": 0,
- "551": 0,
- "552": 0,
- "553": 0,
- "554": 0,
- "555": 0,
- "556": 0,
- "557": 0,
- "558": 0,
- "559": 0,
- "560": 0,
- "561": 0,
- "562": 0,
- "563": 0,
- "564": 0,
- "565": 0,
- "566": 0,
- "567": 0,
- "568": 0,
- "569": 0,
- "570": 0,
- "571": 0,
- "572": 0,
- "573": 0,
- "574": 0,
- "575": 0,
- "576": 0,
- "577": 0,
- "578": 0,
- "579": 0,
- "580": 0,
- "581": 0,
- "582": 0,
- "583": 0,
- "584": 0,
- "585": 0,
- "586": 0,
- "587": 0,
- "588": 0,
- "589": 0,
- "590": 0,
- "591": 0,
- "592": 0,
- "593": 0,
- "594": 0,
- "595": 0,
- "596": 0,
- "597": 0,
- "598": 0,
- "599": 0,
- "600": 0,
- "601": 0,
- "602": 0,
- "603": 0,
- "604": 0,
- "605": 0,
- "606": 0,
- "607": 0,
- "608": 0,
- "609": 0,
- "610": 0,
- "611": 0,
- "612": 0,
- "613": 0,
- "614": 0,
- "615": 0,
- "616": 0,
- "617": 0,
- "618": 0,
- "619": 0,
- "620": 0,
- "621": 0,
- "622": 0,
- "623": 0,
- "624": 0,
- "625": 0,
- "626": 0,
- "627": 0,
- "628": 0,
- "629": 0,
- "630": 0,
- "631": 0,
- "632": 0,
- "633": 0,
- "634": 0,
- "635": 0,
- "636": 0,
- "637": 0,
- "638": 0,
- "639": 0,
- "640": 0,
- "641": 0,
- "642": 0,
- "643": 0,
- "644": 0,
- "645": 0,
- "646": 0,
- "647": 0,
- "648": 0,
- "649": 0,
- "650": 0,
- "651": 0,
- "652": 0,
- "653": 0,
- "654": 0,
- "655": 0,
- "656": 0,
- "657": 0,
- "658": 0,
- "659": 0,
- "660": 0,
- "661": 0,
- "662": 0,
- "663": 0,
- "664": 0,
- "665": 0,
- "666": 0,
- "667": 0,
- "668": 0,
- "669": 0,
- "670": 0,
- "671": 0,
- "672": 0,
- "673": 0,
- "674": 0,
- "675": 0,
- "676": 0,
- "677": 0,
- "678": 0,
- "679": 0,
- "680": 0,
- "681": 0,
- "682": 0,
- "683": 0,
- "684": 0,
- "685": 0,
- "686": 0,
- "687": 0,
- "688": 0,
- "689": 0,
- "690": 0,
- "691": 0,
- "692": 0,
- "693": 0,
- "694": 0,
- "695": 0,
- "696": 0,
- "697": 0,
- "698": 0,
- "699": 0,
- "700": 0,
- "701": 0,
- "702": 0,
- "703": 0,
- "704": 0,
- "705": 0,
- "706": 0,
- "707": 0,
- "708": 0,
- "709": 0,
- "710": 0,
- "711": 0,
- "712": 0,
- "713": 0,
- "714": 0,
- "715": 0,
- "716": 0,
- "717": 0,
- "718": 0,
- "719": 0,
- "720": 0,
- "721": 0,
- "722": 0,
- "723": 0,
- "724": 0,
- "725": 0,
- "726": 0,
- "727": 0,
- "728": 0,
- "729": 0,
- "730": 0,
- "731": 0,
- "732": 0,
- "733": 0,
- "734": 0,
- "735": 0,
- "736": 0,
- "737": 0,
- "738": 0,
- "739": 0,
- "740": 0,
- "741": 0,
- "742": 0,
- "743": 0,
- "744": 0,
- "745": 0,
- "746": 0,
- "747": 0,
- "748": 0,
- "749": 0,
- "750": 0,
- "751": 0,
- "752": 0,
- "753": 0,
- "754": 0,
- "755": 0,
- "756": 0,
- "757": 0,
- "758": 0,
- "759": 0,
- "760": 0,
- "761": 0,
- "762": 0,
- "763": 0,
- "764": 0,
- "765": 0,
- "766": 0,
- "767": 0,
- "768": 0,
- "769": 0,
- "770": 0,
- "771": 0,
- "772": 0,
- "773": 0,
- "774": 0,
- "775": 0,
- "776": 0,
- "777": 0,
- "778": 0,
- "779": 0,
- "780": 0,
- "781": 0,
- "782": 0,
- "783": 0,
- "784": 0,
- "785": 0,
- "786": 0,
- "787": 0,
- "788": 0,
- "789": 0,
- "790": 0,
- "791": 0,
- "792": 0,
- "793": 0,
- "794": 0,
- "795": 0,
- "796": 0,
- "797": 0,
- "798": 0,
- "799": 0,
- "800": 0,
- "801": 0,
- "802": 0,
- "803": 0,
- "804": 0,
- "805": 0,
- "806": 0,
- "807": 0,
- "808": 0,
- "809": 0,
- "810": 0,
- "811": 0,
- "812": 0,
- "813": 0,
- "814": 0,
- "815": 0,
- "816": 0,
- "817": 0,
- "818": 0,
- "819": 0,
- "820": 0,
- "821": 0,
- "822": 0,
- "823": 0,
- "824": 0,
- "825": 0,
- "826": 0,
- "827": 0,
- "828": 0,
- "829": 0,
- "830": 0,
- "831": 0,
- "832": 0,
- "833": 0,
- "834": 0,
- "835": 0,
- "836": 0,
- "837": 0,
- "838": 0,
- "839": 0,
- "840": 0,
- "841": 0,
- "842": 0,
- "843": 0,
- "844": 0,
- "845": 0,
- "846": 0,
- "847": 0,
- "848": 0,
- "849": 0,
- "850": 0,
- "851": 0
- },
- "distdyn": {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "6": 0,
- "7": 0,
- "8": 0,
- "9": 0,
- "10": 0,
- "11": 0,
- "12": 0,
- "13": 0,
- "14": 0,
- "15": 0,
- "16": 0,
- "17": 0,
- "18": 0,
- "19": 0,
- "20": 0,
- "21": 0,
- "22": 0,
- "23": 0,
- "24": 0,
- "25": 0,
- "26": 0,
- "27": 0,
- "28": 0,
- "29": 0,
- "30": 0,
- "31": 0,
- "32": 0,
- "33": 0,
- "34": 0,
- "35": 0,
- "36": 0,
- "37": 0,
- "38": 0,
- "39": 0,
- "40": 0,
- "41": 0,
- "42": 0,
- "43": 0,
- "44": 0,
- "45": 0,
- "46": 0,
- "47": 0,
- "48": 0,
- "49": 0,
- "50": 0,
- "51": 0,
- "52": 0,
- "53": 0,
- "54": 0,
- "55": 0,
- "56": 0,
- "57": 0,
- "58": 0,
- "59": 0,
- "60": 0,
- "61": 0,
- "62": 0,
- "63": 0,
- "64": 0,
- "65": 0,
- "66": 0,
- "67": 0,
- "68": 0,
- "69": 0,
- "70": 0,
- "71": 0,
- "72": 0,
- "73": 0,
- "74": 0,
- "75": 0,
- "76": 0,
- "77": 0,
- "78": 0,
- "79": 0,
- "80": 0,
- "81": 0,
- "82": 0,
- "83": 0,
- "84": 0,
- "85": 0,
- "86": 0,
- "87": 0,
- "88": 0,
- "89": 0,
- "90": 0,
- "91": 0,
- "92": 0,
- "93": 0,
- "94": 0,
- "95": 0,
- "96": 0,
- "97": 0,
- "98": 0,
- "99": 0,
- "100": 0,
- "101": 0,
- "102": 0,
- "103": 0,
- "104": 0,
- "105": 0,
- "106": 0,
- "107": 0,
- "108": 0,
- "109": 0,
- "110": 0,
- "111": 0,
- "112": 0,
- "113": 0,
- "114": 0,
- "115": 0,
- "116": 0,
- "117": 0,
- "118": 0,
- "119": 0,
- "120": 0,
- "121": 0,
- "122": 0,
- "123": 0,
- "124": 0,
- "125": 0,
- "126": 0,
- "127": 0,
- "128": 0,
- "129": 0,
- "130": 0,
- "131": 0,
- "132": 0,
- "133": 0,
- "134": 0,
- "135": 0,
- "136": 0,
- "137": 0,
- "138": 0,
- "139": 0,
- "140": 0,
- "141": 0,
- "142": 0,
- "143": 0,
- "144": 0,
- "145": 0,
- "146": 0,
- "147": 0,
- "148": 0,
- "149": 0,
- "150": 0,
- "151": 0,
- "152": 0,
- "153": 0,
- "154": 0,
- "155": 0,
- "156": 0,
- "157": 0,
- "158": 0,
- "159": 0,
- "160": 0,
- "161": 0,
- "162": 0,
- "163": 0,
- "164": 0,
- "165": 0,
- "166": 0,
- "167": 0,
- "168": 0,
- "169": 0,
- "170": 0,
- "171": 0,
- "172": 0,
- "173": 0,
- "174": 0,
- "175": 0,
- "176": 0,
- "177": 0,
- "178": 0,
- "179": 0,
- "180": 0,
- "181": 0,
- "182": 0,
- "183": 0,
- "184": 0,
- "185": 0,
- "186": 0,
- "187": 0,
- "188": 0,
- "189": 0,
- "190": 0,
- "191": 0,
- "192": 0,
- "193": 0,
- "194": 0,
- "195": 0,
- "196": 0,
- "197": 0,
- "198": 0,
- "199": 0,
- "200": 0,
- "201": 0,
- "202": 0,
- "203": 0,
- "204": 0,
- "205": 0,
- "206": 0,
- "207": 0,
- "208": 0,
- "209": 0,
- "210": 0,
- "211": 0,
- "212": 0,
- "213": 0,
- "214": 0,
- "215": 0,
- "216": 0,
- "217": 0,
- "218": 0,
- "219": 0,
- "220": 0,
- "221": 0,
- "222": 0,
- "223": 0,
- "224": 0,
- "225": 0,
- "226": 0,
- "227": 0,
- "228": 0,
- "229": 0,
- "230": 0,
- "231": 0,
- "232": 0,
- "233": 0,
- "234": 0,
- "235": 0,
- "236": 0,
- "237": 0,
- "238": 0,
- "239": 0,
- "240": 0,
- "241": 0,
- "242": 0,
- "243": 0,
- "244": 0,
- "245": 0,
- "246": 0,
- "247": 0,
- "248": 0,
- "249": 0,
- "250": 0,
- "251": 0,
- "252": 0,
- "253": 0,
- "254": 0,
- "255": 0,
- "256": 0,
- "257": 0,
- "258": 0,
- "259": 0,
- "260": 0,
- "261": 0,
- "262": 0,
- "263": 0,
- "264": 0,
- "265": 0,
- "266": 0,
- "267": 0,
- "268": 0,
- "269": 0,
- "270": 0,
- "271": 0,
- "272": 0,
- "273": 0,
- "274": 0,
- "275": 0,
- "276": 0,
- "277": 0,
- "278": 0,
- "279": 0,
- "280": 0,
- "281": 0,
- "282": 0,
- "283": 0,
- "284": 0,
- "285": 0,
- "286": 0,
- "287": 0,
- "288": 0,
- "289": 0,
- "290": 0,
- "291": 0,
- "292": 0,
- "293": 0,
- "294": 0,
- "295": 0,
- "296": 0,
- "297": 0,
- "298": 0,
- "299": 0,
- "300": 0,
- "301": 0,
- "302": 0,
- "303": 0,
- "304": 0,
- "305": 0,
- "306": 0,
- "307": 0,
- "308": 0,
- "309": 0,
- "310": 0,
- "311": 0,
- "312": 0,
- "313": 0,
- "314": 0,
- "315": 0,
- "316": 0,
- "317": 0,
- "318": 0,
- "319": 0,
- "320": 0,
- "321": 0,
- "322": 0,
- "323": 0,
- "324": 0,
- "325": 0,
- "326": 0,
- "327": 0,
- "328": 0,
- "329": 0,
- "330": 0,
- "331": 0,
- "332": 0,
- "333": 0,
- "334": 0,
- "335": 0,
- "336": 0,
- "337": 0,
- "338": 0,
- "339": 0,
- "340": 0,
- "341": 0,
- "342": 0,
- "343": 0,
- "344": 0,
- "345": 0,
- "346": 0,
- "347": 0,
- "348": 0,
- "349": 0,
- "350": 0,
- "351": 0,
- "352": 0,
- "353": 0,
- "354": 0,
- "355": 0,
- "356": 0,
- "357": 0,
- "358": 0,
- "359": 0,
- "360": 0,
- "361": 0,
- "362": 0,
- "363": 0,
- "364": 0,
- "365": 0,
- "366": 0,
- "367": 0,
- "368": 0,
- "369": 0,
- "370": 0,
- "371": 0,
- "372": 0,
- "373": 0,
- "374": 0,
- "375": 0,
- "376": 0,
- "377": 0,
- "378": 0,
- "379": 0,
- "380": 0,
- "381": 0,
- "382": 0,
- "383": 0,
- "384": 0,
- "385": 0,
- "386": 0,
- "387": 0,
- "388": 0,
- "389": 0,
- "390": 0,
- "391": 0,
- "392": 0,
- "393": 0,
- "394": 0,
- "395": 0,
- "396": 0,
- "397": 0,
- "398": 0,
- "399": 0,
- "400": 0,
- "401": 0,
- "402": 0,
- "403": 0,
- "404": 0,
- "405": 0,
- "406": 0,
- "407": 0,
- "408": 0,
- "409": 0,
- "410": 0,
- "411": 0,
- "412": 0,
- "413": 0,
- "414": 0,
- "415": 0,
- "416": 0,
- "417": 0,
- "418": 0,
- "419": 0,
- "420": 0,
- "421": 0,
- "422": 0,
- "423": 0,
- "424": 0,
- "425": 0,
- "426": 0,
- "427": 0,
- "428": 0,
- "429": 0,
- "430": 0,
- "431": 0,
- "432": 0,
- "433": 0,
- "434": 0,
- "435": 0,
- "436": 0,
- "437": 0,
- "438": 0,
- "439": 0,
- "440": 0,
- "441": 0,
- "442": 0,
- "443": 0,
- "444": 0,
- "445": 0,
- "446": 0,
- "447": 0,
- "448": 0,
- "449": 0,
- "450": 0,
- "451": 0,
- "452": 0,
- "453": 0,
- "454": 0,
- "455": 0,
- "456": 0,
- "457": 0,
- "458": 0,
- "459": 0,
- "460": 0,
- "461": 0,
- "462": 0,
- "463": 0,
- "464": 0,
- "465": 0,
- "466": 0,
- "467": 0,
- "468": 0,
- "469": 0,
- "470": 0,
- "471": 0,
- "472": 0,
- "473": 0,
- "474": 0,
- "475": 0,
- "476": 0,
- "477": 0,
- "478": 0,
- "479": 0,
- "480": 0,
- "481": 0,
- "482": 0,
- "483": 0,
- "484": 0,
- "485": 0,
- "486": 0,
- "487": 0,
- "488": 0,
- "489": 0,
- "490": 0,
- "491": 0,
- "492": 0,
- "493": 0,
- "494": 0,
- "495": 0,
- "496": 0,
- "497": 0,
- "498": 0,
- "499": 0,
- "500": 0,
- "501": 0,
- "502": 0,
- "503": 0,
- "504": 0,
- "505": 0,
- "506": 0,
- "507": 0,
- "508": 0,
- "509": 0,
- "510": 0,
- "511": 0,
- "512": 0,
- "513": 0,
- "514": 0,
- "515": 0,
- "516": 0,
- "517": 0,
- "518": 0,
- "519": 0,
- "520": 0,
- "521": 0,
- "522": 0,
- "523": 0,
- "524": 0,
- "525": 0,
- "526": 0,
- "527": 0,
- "528": 0,
- "529": 0,
- "530": 0,
- "531": 0,
- "532": 0,
- "533": 0,
- "534": 0,
- "535": 0,
- "536": 0,
- "537": 0,
- "538": 0,
- "539": 0,
- "540": 0,
- "541": 0,
- "542": 0,
- "543": 0,
- "544": 0,
- "545": 0,
- "546": 0,
- "547": 0,
- "548": 0,
- "549": 0,
- "550": 0,
- "551": 0,
- "552": 0,
- "553": 0,
- "554": 0,
- "555": 0,
- "556": 0,
- "557": 0,
- "558": 0,
- "559": 0,
- "560": 0,
- "561": 0,
- "562": 0,
- "563": 0,
- "564": 0,
- "565": 0,
- "566": 0,
- "567": 0,
- "568": 0,
- "569": 0,
- "570": 0,
- "571": 0,
- "572": 0,
- "573": 0,
- "574": 0,
- "575": 0,
- "576": 0,
- "577": 0,
- "578": 0,
- "579": 0,
- "580": 0,
- "581": 0,
- "582": 0,
- "583": 0,
- "584": 0,
- "585": 0,
- "586": 0,
- "587": 0,
- "588": 0,
- "589": 0,
- "590": 0,
- "591": 0
- },
- "sane": 1,
- "back": -1,
- "was": 0
- },
- "data_type": 2,
- "adler": 1
- }
- , i = 65536
- , a = undefined;
- let s, l, y;
- if (this.ended)
- return !1;
- for (l = t === ~~t ? t : !0 === t ? h : 0,
- "[object ArrayBuffer]" === toString.call(e) ? n.input = new Uint8Array(e) : n.input = e,
- n.next_in = 0,
- n.avail_in = n.input.length; ;) {
- 0 === n.avail_out && (n.output = new Uint8Array(i),
- n.next_out = 0,
- n.avail_out = i),
- s = inflate(n, l),
- s === 2 && a && (s = r.inflateSetDictionary(n, a),
- s === 0 ? s = r.inflate(n, l) : s === -3 && (s = 2));
- while (n.avail_in > 0 && s === 1 && n.state.wrap > 0 && 0 !== e[n.next_in])
- r.inflateReset(n),
- s = r.inflate(n, l);
- switch (s) {
- case -2:
- case -3:
- case 2:
- case -4:
- return onEnd(s),
- this.ended = !0,
- !1
- }
- if (y = n.avail_out,
- n.next_out && (0 === n.avail_out || s === d))
- if ("string" === this.options.to) {
- let e = o.utf8border(n.output, n.next_out)
- , t = n.next_out - e
- , r = o.buf2string(n.output, e);
- n.next_out = t,
- n.avail_out = i - t,
- t && n.output.set(n.output.subarray(e, e + t), 0),
- this.onData(r)
- } else
- this.onData(n.output.length === n.next_out ? n.output : n.output.subarray(0, n.next_out));
- if (s !== f || 0 !== y) {
- if (s === d)
- return s = r.inflateEnd(this.strm),
- this.onEnd(s),
- this.ended = !0,
- !0;
- if (0 === n.avail_in)
- break
- }
- }
- return !0
- }
- function onEnd(e) {
- e === 0 && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = i.flattenChunks(this.chunks)),
- this.chunks = [],
- this.err = e,
- this.msg = ""
- }
- function ii(e,t,r,i){
- const o = n
- , a = i + r;
- e ^= -1;
- for (let n = i; n < a; n++)
- e = e >>> 8 ^ o[255 & (e ^ t[n])];
- return ~e
- }
- function aaaaaa(e,h,f,d,p,m,v,g){
- const y = g.bits;
- let b, x, w, _, S, C, E = 0, k = 0, T = 0, O = 0, P = 0, M = 0, A = 0, D = 0, j = 0, I = 0, R = null, $ = 0;
- const N = new Uint16Array(t + 1)
- , F = new Uint16Array(t + 1);
- let L, B, z, V = null, H = 0;
- for (E = 0; E <= t; E++)
- N[E] = 0;
- for (k = 0; k < d; k++)
- N[h[f + k]]++;
- for (P = y,
- O = t; O >= 1; O--)
- if (0 !== N[O])
- break;
- if (P > O && (P = O),
- 0 === O)
- return p[m++] = 20971520,
- p[m++] = 20971520,
- g.bits = 1,
- 0;
- for (T = 1; T < O; T++)
- if (0 !== N[T])
- break;
- for (P < T && (P = T),
- D = 1,
- E = 1; E <= t; E++)
- if (D <<= 1,
- D -= N[E],
- D < 0)
- return -1;
- if (D > 0 && (e === ii || 1 !== O))
- return -1;
- for (F[1] = 0,
- E = 1; E < t; E++)
- F[E + 1] = F[E] + N[E];
- for (k = 0; k < d; k++)
- 0 !== h[f + k] && (v[F[h[f + k]]++] = k);
- if (e === i ? (R = V = v,
- C = 19) : e === o ? (R = s,
- $ -= 257,
- V = l,
- H -= 257,
- C = 256) : (R = u,
- V = c,
- C = -1),
- I = 0,
- k = 0,
- E = T,
- S = m,
- M = P,
- A = 0,
- w = -1,
- j = 1 << P,
- _ = j - 1,
- e === o && j > n || e === a && j > r)
- return 1;
- for (; ; ) {
- L = E - A,
- v[k] < C ? (B = 0,
- z = v[k]) : v[k] > C ? (B = V[H + v[k]],
- z = R[$ + v[k]]) : (B = 96,
- z = 0),
- b = 1 << E - A,
- x = 1 << M,
- T = x;
- do {
- x -= b,
- p[S + (I >> A) + x] = L << 24 | B << 16 | z
- } while (0 !== x);
- b = 1 << E - 1;
- while (I & b)
- b >>= 1;
- if (0 !== b ? (I &= b - 1,
- I += b) : I = 0,
- k++,
- 0 === --N[E]) {
- if (E === O)
- break;
- E = h[f + v[k]]
- }
- if (E > P && (I & _) !== w) {
- 0 === A && (A = P),
- S += T,
- M = E - A,
- D = 1 << M;
- while (M + A < O) {
- if (D -= N[M + A],
- D <= 0)
- break;
- M++,
- D <<= 1
- }
- if (j += 1 << M,
- e === o && j > n || e === a && j > r)
- return 1;
- w = I & _,
- p[w] = P << 24 | M << 16 | S - m
- }
- }
- return 0 !== I && (p[S + I] = E - A << 24 | 64 << 16),
- g.bits = P,
- 0
- }
- function ungzip(e, t) {
- const n = new y(t);
- if (pusher(e),
- n.err)
- throw n.msg || a[n.err];
- return n.result
- }
- function l(t) {
- var e, n, i = t.words.length, a = new Uint8Array(t.sigBytes), o = 0;
- for (n = 0; n < i; n++)
- e = t.words[n],
- a[o++] = e >> 24,
- a[o++] = e >> 16 & 255,
- a[o++] = e >> 8 & 255,
- a[o++] = 255 & e;
- return a
- }
- decrypt(e);
复制代码 结果如下,成功解密。
- 编写python代码,联动js代码,实现实时数据的解密。
- var CryptoJS = require("crypto-js")
- var pako = require("pako")
- var e = "数据";
- function decrypt(e) {
- var n = CryptoJS.enc.Utf8.parse(27..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -39)
- }
- )).join("") + 24901..toString(36).toLowerCase() + 33..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -39)
- }
- )).join("") + 976..toString(36).toLowerCase() + 20..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -39)
- }
- )).join("") + function () {
- var t = Array.prototype.slice.call(arguments)
- , e = t.shift();
- return t.reverse().map((function (t, n) {
- return String.fromCharCode(t - e - 24 - n)
- }
- )).join("")
- }(10, 127, 154, 91, 151, 91, 136) + 11..toString(36).toLowerCase() + 13..toString(36).toLowerCase().split("").map((function (t) {
- return String.fromCharCode(t.charCodeAt() + -13)
- }
- )).join(""));
- a = CryptoJS.AES.decrypt(e, n, {
- mode: CryptoJS.mode.ECB,
- padding: CryptoJS.pad.Pkcs7
- });
- o = l(a);
- r = pako.ungzip(o, {
- to: "string"
- })
- console.log(JSON.parse(r));
- }
- function l(t) {
- var e, n, i = t.words.length, a = new Uint8Array(t.sigBytes), o = 0;
- for (n = 0; n < i; n++)
- e = t.words[n],
- a[o++] = e >> 24,
- a[o++] = e >> 16 & 255,
- a[o++] = e >> 8 & 255,
- a[o++] = 255 & e;
- return a
- }
- decrypt(e);
复制代码 运行结果老是报错。
经过检查,发现是通过python获取的数据跟页面上的数据不太一致造成的,直接复制页面上的响应结果没有一点问题,不知道是什么原因造成的,如果有大佬知道问题所在,教教小弟。
小总结
一点小经验,有时候找代码的时候可以看看它是写在哪个文件下的,如果是位于chunk开头的文件里,基本上是使用了第三方库;如果是位于app开头的文件里,基本上是自己写的。
ungzip函数位于chunk开头的文件里,如果抠代码感觉到有难度,可以直接先上网搜搜。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |