mirror of
https://github.com/zhinianboke/xianyu-auto-reply.git
synced 2025-08-02 20:47:35 +08:00
569 lines
20 KiB
JavaScript
569 lines
20 KiB
JavaScript
const crypto = require('crypto')
|
|
|
|
const generate_mid = () => {
|
|
return "" + Math.floor(1e3 * Math.random()) + new Date().getTime() + " 0"
|
|
}
|
|
|
|
const generate_uuid = () => {
|
|
return "-" + Date.now() + "1"
|
|
}
|
|
|
|
const generate_device_id = (user_id) => {
|
|
for (var ee, et = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""), en = [], eo = Math.random, ei = 0; ei < 36; ei++)
|
|
8 === ei || 13 === ei || 18 === ei || 23 === ei ? en[ei] = "-" : 14 === ei ? en[ei] = "4" : (ee = 0 | 16 * eo(),
|
|
en[ei] = et[19 === ei ? 3 & ee | 8 : ee]);
|
|
return en.join("") + "-" + user_id
|
|
}
|
|
|
|
|
|
const generate_sign = (t, token, data) => {
|
|
const j = t
|
|
const h = 34839810
|
|
const msg = token + "&" + j + "&" + h + "&" + data
|
|
const md5 = crypto.createHash('md5')
|
|
md5.update(msg)
|
|
return md5.digest('hex')
|
|
}
|
|
eM = new TextDecoder("utf-8");
|
|
eL = null
|
|
var sv = Array(4096);
|
|
|
|
function sg() {
|
|
var ee, et = eI[aG++];
|
|
if (!(et >= 160) || !(et < 192))
|
|
return aG--,
|
|
sy(a5());
|
|
if (et -= 160,
|
|
aX >= aG)
|
|
return eR.slice(aG - aq, (aG += et) - aq);
|
|
if (!(0 == aX && eO < 180))
|
|
return se(et);
|
|
var en = (et << 5 ^ (et > 1 ? eZ.getUint16(aG) : et > 0 ? eI[aG] : 0)) & 4095
|
|
, eo = sv[en]
|
|
, ei = aG
|
|
, ec = aG + et - 3
|
|
, eu = 0;
|
|
if (eo && eo.bytes == et) {
|
|
for (; ei < ec;) {
|
|
if ((ee = eZ.getUint32(ei)) != eo[eu++]) {
|
|
ei = 1879048192;
|
|
break
|
|
}
|
|
ei += 4
|
|
}
|
|
for (ec += 3; ei < ec;)
|
|
if ((ee = eI[ei++]) != eo[eu++]) {
|
|
ei = 1879048192;
|
|
break
|
|
}
|
|
if (ei === ec)
|
|
return aG = ei,
|
|
eo.string;
|
|
ec -= 3,
|
|
ei = aG
|
|
}
|
|
for (eo = [],
|
|
sv[en] = eo,
|
|
eo.bytes = et; ei < ec;)
|
|
ee = eZ.getUint32(ei),
|
|
eo.push(ee),
|
|
ei += 4;
|
|
for (ec += 3; ei < ec;)
|
|
ee = eI[ei++],
|
|
eo.push(ee);
|
|
var ed = et < 16 ? su(et) : sl(et);
|
|
return null != ed ? eo.string = ed : eo.string = se(et)
|
|
}
|
|
|
|
function sy(ee) {
|
|
if ("string" == typeof ee)
|
|
return ee;
|
|
if ("number" == typeof ee || "boolean" == typeof ee || "bigint" == typeof ee)
|
|
return ee.toString();
|
|
if (null == ee)
|
|
return ee + "";
|
|
throw Error("Invalid property type for record", typeof ee)
|
|
}
|
|
|
|
r9 = function (ee) {
|
|
return atob(rW(ee))
|
|
}
|
|
rW = function (ee) {
|
|
return ee.replace(/[^A-Za-z0-9\+\/]/g, "")
|
|
}
|
|
aW = {
|
|
"useRecords": false,
|
|
"mapsAsObjects": true
|
|
}
|
|
aJ = false
|
|
eP = []
|
|
|
|
function a3(ee) {
|
|
if (!aW.trusted && !aJ) {
|
|
var et, en, eo = eP.sharedLength || 0;
|
|
eo < eP.length && (eP.length = eo)
|
|
}
|
|
if (aW.randomAccessStructure && eI[aG] < 64 && eI[aG] >= 32 && ej ? (et = ej(eI, aG, eO, aW),
|
|
eI = null,
|
|
!(ee && ee.lazy) && et && (et = et.toJSON()),
|
|
aG = eO) : et = a5(),
|
|
eD && (aG = eD.postBundlePosition,
|
|
eD = null),
|
|
aJ && (eP.restoreStructures = null),
|
|
aG == eO)
|
|
eP && eP.restoreStructures && a4(),
|
|
eP = null,
|
|
eI = null,
|
|
eL && (eL = null);
|
|
else if (aG > eO)
|
|
throw Error("Unexpected end of MessagePack data");
|
|
else if (!aJ) {
|
|
try {
|
|
en = JSON.stringify(et, function (ee, et) {
|
|
return "bigint" == typeof et ? "".concat(et, "n") : et
|
|
}).slice(0, 100)
|
|
} catch (ee) {
|
|
en = "(JSON view not available " + ee + ")"
|
|
}
|
|
throw Error("Data read, but end of buffer not reached " + en)
|
|
}
|
|
return et
|
|
|
|
}
|
|
|
|
function so(ee) {
|
|
if (ee < 16 && (et = su(ee)))
|
|
return et;
|
|
if (ee > 64 && eM)
|
|
return eM.decode(eI.subarray(aG, aG += ee));
|
|
var et, en = aG + ee, eo = [];
|
|
for (et = ""; aG < en;) {
|
|
var ei = eI[aG++];
|
|
if ((128 & ei) === 0)
|
|
eo.push(ei);
|
|
else if ((224 & ei) === 192) {
|
|
var ec = 63 & eI[aG++];
|
|
eo.push((31 & ei) << 6 | ec)
|
|
} else if ((240 & ei) === 224) {
|
|
var eu = 63 & eI[aG++]
|
|
, ed = 63 & eI[aG++];
|
|
eo.push((31 & ei) << 12 | eu << 6 | ed)
|
|
} else if ((248 & ei) === 240) {
|
|
var ef = (7 & ei) << 18 | (63 & eI[aG++]) << 12 | (63 & eI[aG++]) << 6 | 63 & eI[aG++];
|
|
ef > 65535 && (ef -= 65536,
|
|
eo.push(ef >>> 10 & 1023 | 55296),
|
|
ef = 56320 | 1023 & ef),
|
|
eo.push(ef)
|
|
} else
|
|
eo.push(ei);
|
|
eo.length >= 4096 && (et += sc.apply(String, eo),
|
|
eo.length = 0)
|
|
}
|
|
return eo.length > 0 && (et += sc.apply(String, eo)),
|
|
et
|
|
}
|
|
|
|
se = so;
|
|
var sc = String.fromCharCode;
|
|
|
|
function sl(ee) {
|
|
for (var et = aG, en = Array(ee), eo = 0; eo < ee; eo++) {
|
|
var ei = eI[aG++];
|
|
if ((128 & ei) > 0) {
|
|
aG = et;
|
|
return
|
|
}
|
|
en[eo] = ei
|
|
}
|
|
return sc.apply(String, en)
|
|
}
|
|
|
|
function su(ee) {
|
|
if (ee < 4) {
|
|
if (ee < 2) {
|
|
if (0 === ee)
|
|
return "";
|
|
var et = eI[aG++];
|
|
if ((128 & et) > 1) {
|
|
aG -= 1;
|
|
return
|
|
}
|
|
return sc(et)
|
|
}
|
|
var en = eI[aG++]
|
|
, eo = eI[aG++];
|
|
if ((128 & en) > 0 || (128 & eo) > 0) {
|
|
aG -= 2;
|
|
return
|
|
}
|
|
if (ee < 3)
|
|
return sc(en, eo);
|
|
var ei = eI[aG++];
|
|
if ((128 & ei) > 0) {
|
|
aG -= 3;
|
|
return
|
|
}
|
|
return sc(en, eo, ei)
|
|
}
|
|
var ec = eI[aG++]
|
|
, eu = eI[aG++]
|
|
, ed = eI[aG++]
|
|
, ef = eI[aG++];
|
|
if ((128 & ec) > 0 || (128 & eu) > 0 || (128 & ed) > 0 || (128 & ef) > 0) {
|
|
aG -= 4;
|
|
return
|
|
}
|
|
if (ee < 6) {
|
|
if (4 === ee)
|
|
return sc(ec, eu, ed, ef);
|
|
var ep = eI[aG++];
|
|
if ((128 & ep) > 0) {
|
|
aG -= 5;
|
|
return
|
|
}
|
|
return sc(ec, eu, ed, ef, ep)
|
|
}
|
|
if (ee < 8) {
|
|
var em = eI[aG++]
|
|
, eh = eI[aG++];
|
|
if ((128 & em) > 0 || (128 & eh) > 0) {
|
|
aG -= 6;
|
|
return
|
|
}
|
|
if (ee < 7)
|
|
return sc(ec, eu, ed, ef, em, eh);
|
|
var ev = eI[aG++];
|
|
if ((128 & ev) > 0) {
|
|
aG -= 7;
|
|
return
|
|
}
|
|
return sc(ec, eu, ed, ef, em, eh, ev)
|
|
}
|
|
var eg = eI[aG++]
|
|
, eC = eI[aG++]
|
|
, eS = eI[aG++]
|
|
, ew = eI[aG++];
|
|
if ((128 & eg) > 0 || (128 & eC) > 0 || (128 & eS) > 0 || (128 & ew) > 0) {
|
|
aG -= 8;
|
|
return
|
|
}
|
|
if (ee < 10) {
|
|
if (8 === ee)
|
|
return sc(ec, eu, ed, ef, eg, eC, eS, ew);
|
|
var eE = eI[aG++];
|
|
if ((128 & eE) > 0) {
|
|
aG -= 9;
|
|
return
|
|
}
|
|
return sc(ec, eu, ed, ef, eg, eC, eS, ew, eE)
|
|
}
|
|
if (ee < 12) {
|
|
var ek = eI[aG++]
|
|
, e_ = eI[aG++];
|
|
if ((128 & ek) > 0 || (128 & e_) > 0) {
|
|
aG -= 10;
|
|
return
|
|
}
|
|
if (ee < 11)
|
|
return sc(ec, eu, ed, ef, eg, eC, eS, ew, ek, e_);
|
|
var eT = eI[aG++];
|
|
if ((128 & eT) > 0) {
|
|
aG -= 11;
|
|
return
|
|
}
|
|
return sc(ec, eu, ed, ef, eg, eC, eS, ew, ek, e_, eT)
|
|
}
|
|
var eN = eI[aG++]
|
|
, eM = eI[aG++]
|
|
, eO = eI[aG++]
|
|
, eP = eI[aG++];
|
|
if ((128 & eN) > 0 || (128 & eM) > 0 || (128 & eO) > 0 || (128 & eP) > 0) {
|
|
aG -= 12;
|
|
return
|
|
}
|
|
if (ee < 14) {
|
|
if (12 === ee)
|
|
return sc(ec, eu, ed, ef, eg, eC, eS, ew, eN, eM, eO, eP);
|
|
var eR = eI[aG++];
|
|
if ((128 & eR) > 0) {
|
|
aG -= 13;
|
|
return
|
|
}
|
|
return sc(ec, eu, ed, ef, eg, eC, eS, ew, eN, eM, eO, eP, eR)
|
|
}
|
|
var eD = eI[aG++]
|
|
, eL = eI[aG++];
|
|
if ((128 & eD) > 0 || (128 & eL) > 0) {
|
|
aG -= 14;
|
|
return
|
|
}
|
|
if (ee < 15)
|
|
return sc(ec, eu, ed, ef, eg, eC, eS, ew, eN, eM, eO, eP, eD, eL);
|
|
var eZ = eI[aG++];
|
|
if ((128 & eZ) > 0) {
|
|
aG -= 15;
|
|
return
|
|
}
|
|
return sc(ec, eu, ed, ef, eg, eC, eS, ew, eN, eM, eO, eP, eD, eL, eZ)
|
|
}
|
|
|
|
function ss(ee) {
|
|
if (aW.mapsAsObjects) {
|
|
for (var et = {}, en = 0; en < ee; en++) {
|
|
var eo = sg();
|
|
"__proto__" === eo && (eo = "__proto_"),
|
|
et[eo] = a5()
|
|
}
|
|
return et
|
|
}
|
|
for (var ei = new Map, ec = 0; ec < ee; ec++)
|
|
ei.set(a5(), a5());
|
|
return ei
|
|
}
|
|
|
|
function a5() {
|
|
var ee, et = eI[aG++];
|
|
if (et < 160) {
|
|
if (et < 128) {
|
|
if (et < 64)
|
|
return et;
|
|
var en = eP[63 & et] || aW.getStructures && a9()[63 & et];
|
|
return en ? (en.read || (en.read = a8(en, 63 & et)),
|
|
en.read()) : et
|
|
}
|
|
if (et < 144) {
|
|
if (et -= 128,
|
|
aW.mapsAsObjects) {
|
|
for (var eo = {}, ei = 0; ei < et; ei++) {
|
|
var ec = sg();
|
|
"__proto__" === ec && (ec = "__proto_"),
|
|
eo[ec] = a5()
|
|
}
|
|
return eo
|
|
}
|
|
for (var eu = new Map, ed = 0; ed < et; ed++)
|
|
eu.set(a5(), a5());
|
|
return eu
|
|
}
|
|
for (var ef = Array(et -= 144), ep = 0; ep < et; ep++)
|
|
ef[ep] = a5();
|
|
return aW.freezeData ? Object.freeze(ef) : ef
|
|
}
|
|
if (et < 192) {
|
|
var em = et - 160;
|
|
if (aX >= aG)
|
|
return eR.slice(aG - aq, (aG += em) - aq);
|
|
if (0 == aX && eO < 140) {
|
|
var eh = em < 16 ? su(em) : sl(em);
|
|
if (null != eh)
|
|
return eh
|
|
}
|
|
return se(em)
|
|
}
|
|
switch (et) {
|
|
case 192:
|
|
return null;
|
|
case 193:
|
|
if (eD) {
|
|
if ((ee = a5()) > 0)
|
|
return eD[1].slice(eD.position1, eD.position1 += ee);
|
|
return eD[0].slice(eD.position0, eD.position0 -= ee)
|
|
}
|
|
return aY;
|
|
case 194:
|
|
return !1;
|
|
case 195:
|
|
return !0;
|
|
case 196:
|
|
if (void 0 === (ee = eI[aG++]))
|
|
throw Error("Unexpected end of buffer");
|
|
return sm(ee);
|
|
case 197:
|
|
return ee = eZ.getUint16(aG),
|
|
aG += 2,
|
|
sm(ee);
|
|
case 198:
|
|
return ee = eZ.getUint32(aG),
|
|
aG += 4,
|
|
sm(ee);
|
|
case 199:
|
|
return sh(eI[aG++]);
|
|
case 200:
|
|
return ee = eZ.getUint16(aG),
|
|
aG += 2,
|
|
sh(ee);
|
|
case 201:
|
|
return ee = eZ.getUint32(aG),
|
|
aG += 4,
|
|
sh(ee);
|
|
case 202:
|
|
if (ee = eZ.getFloat32(aG),
|
|
aW.useFloat32 > 2) {
|
|
var ev = sT[(127 & eI[aG]) << 1 | eI[aG + 1] >> 7];
|
|
return aG += 4,
|
|
(ev * ee + (ee > 0 ? .5 : -.5) >> 0) / ev
|
|
}
|
|
return aG += 4,
|
|
ee;
|
|
case 203:
|
|
return ee = eZ.getFloat64(aG),
|
|
aG += 8,
|
|
ee;
|
|
case 204:
|
|
return eI[aG++];
|
|
case 205:
|
|
return ee = eZ.getUint16(aG),
|
|
aG += 2,
|
|
ee;
|
|
case 206:
|
|
return ee = eZ.getUint32(aG),
|
|
aG += 4,
|
|
ee;
|
|
case 207:
|
|
return "number" === aW.int64AsType ? ee = 4294967296 * eZ.getUint32(aG) + eZ.getUint32(aG + 4) : "string" === aW.int64AsType ? ee = eZ.getBigUint64(aG).toString() : "auto" === aW.int64AsType ? (ee = eZ.getBigUint64(aG)) <= BigInt(2) << BigInt(52) && (ee = Number(ee)) : ee = eZ.getBigUint64(aG),
|
|
aG += 8,
|
|
ee;
|
|
case 208:
|
|
return eZ.getInt8(aG++);
|
|
case 209:
|
|
return ee = eZ.getInt16(aG),
|
|
aG += 2,
|
|
ee;
|
|
case 210:
|
|
return ee = eZ.getInt32(aG),
|
|
aG += 4,
|
|
ee;
|
|
case 211:
|
|
return "number" === aW.int64AsType ? ee = 4294967296 * eZ.getInt32(aG) + eZ.getUint32(aG + 4) : "string" === aW.int64AsType ? ee = eZ.getBigInt64(aG).toString() : "auto" === aW.int64AsType ? (ee = eZ.getBigInt64(aG)) >= BigInt(-2) << BigInt(52) && ee <= BigInt(2) << BigInt(52) && (ee = Number(ee)) : ee = eZ.getBigInt64(aG),
|
|
aG += 8,
|
|
ee;
|
|
case 212:
|
|
if (114 == (ee = eI[aG++]))
|
|
return sC(63 & eI[aG++]);
|
|
var eg = aK[ee];
|
|
if (eg) {
|
|
if (eg.read)
|
|
return aG++,
|
|
eg.read(a5());
|
|
if (eg.noBuffer)
|
|
return aG++,
|
|
eg();
|
|
return eg(eI.subarray(aG, ++aG))
|
|
}
|
|
throw Error("Unknown extension " + ee);
|
|
case 213:
|
|
if (114 == (ee = eI[aG]))
|
|
return aG++,
|
|
sC(63 & eI[aG++], eI[aG++]);
|
|
return sh(2);
|
|
case 214:
|
|
return sh(4);
|
|
case 215:
|
|
return sh(8);
|
|
case 216:
|
|
return sh(16);
|
|
case 217:
|
|
if (ee = eI[aG++],
|
|
aX >= aG)
|
|
return eR.slice(aG - aq, (aG += ee) - aq);
|
|
return st(ee);
|
|
case 218:
|
|
if (ee = eZ.getUint16(aG),
|
|
aG += 2,
|
|
aX >= aG)
|
|
return eR.slice(aG - aq, (aG += ee) - aq);
|
|
return sn(ee);
|
|
case 219:
|
|
if (ee = eZ.getUint32(aG),
|
|
aG += 4,
|
|
aX >= aG)
|
|
return eR.slice(aG - aq, (aG += ee) - aq);
|
|
return sr(ee);
|
|
case 220:
|
|
return ee = eZ.getUint16(aG),
|
|
aG += 2,
|
|
si(ee);
|
|
case 221:
|
|
return ee = eZ.getUint32(aG),
|
|
aG += 4,
|
|
si(ee);
|
|
case 222:
|
|
return ee = eZ.getUint16(aG),
|
|
aG += 2,
|
|
ss(ee);
|
|
case 223:
|
|
return ee = eZ.getUint32(aG),
|
|
aG += 4,
|
|
ss(ee);
|
|
default:
|
|
if (et >= 224)
|
|
return et - 256;
|
|
if (void 0 === et) {
|
|
var eC = Error("Unexpected end of MessagePack data");
|
|
throw eC.incomplete = !0,
|
|
eC
|
|
}
|
|
throw Error("Unknown MessagePack token " + et)
|
|
}
|
|
}
|
|
|
|
sn = so
|
|
var a6 = /^[a-zA-Z_$][a-zA-Z\d_$]*$/;
|
|
const decrypt = (ee) => {
|
|
for (var et, en, eo = r9(ee), ei = eo.length, ec = new Uint8Array(ei), eu = 0; eu < ei; eu++) {
|
|
var ed = eo.charCodeAt(eu);
|
|
ec[eu] = ed
|
|
}
|
|
en = {}
|
|
et = ec;
|
|
et.buffer || et.constructor !== ArrayBuffer || (et = "undefined" != typeof Buffer ? Buffer.from(et) : new Uint8Array(et)),
|
|
"object" == typeof en ? (eO = en.end || et.length,
|
|
aG = en.start || 0) : (aG = 0,
|
|
eO = en > -1 ? en : et.length),
|
|
aX = 0,
|
|
eR = null,
|
|
eD = null,
|
|
eI = et;
|
|
eM = new TextDecoder("utf-8");
|
|
eL = null
|
|
|
|
eP = [];
|
|
eZ = et.dataView || (et.dataView = new DataView(et.buffer, et.byteOffset, et.byteLength))
|
|
res = a3(en)
|
|
// ec = ecc;
|
|
// rA = 0;
|
|
// rB = 0;
|
|
// ed = [];
|
|
// eu = ec.length;
|
|
// rj = {
|
|
// "useRecords": false,
|
|
// "mapsAsObjects": true
|
|
// }
|
|
// // ei 是 TextDecoder
|
|
// ei = new TextDecoder("utf-8");
|
|
// eh = new DataView(ec.buffer, ec.byteOffset, ec.byteLength);
|
|
// ec.dataView = eh;
|
|
// let res = rK()
|
|
const replacer = (key, value) => {
|
|
if (typeof value === 'bigint') {
|
|
return value.toString();
|
|
}
|
|
return value;
|
|
};
|
|
|
|
res = JSON.stringify(res, replacer);
|
|
return res;
|
|
}
|
|
|
|
|
|
// console.log(generate_mid())
|
|
// console.log(generate_uuid())
|
|
// console.log(generate_device_id())
|
|
// console.log(generate_sign('5f65b00f83994987e334f97360d69557', '{"sessionTypes":"1,19"}'))
|
|
// let msg = "ggGLAYEBtTIyMDI2NDA5MTgwNzlAZ29vZmlzaAKzNDc4MTI4NzAwMDBAZ29vZmlzaAOxMzQwMjM5MTQ3MjUwMy5QTk0EAAXPAAABlYW04bIGggFlA4UBoAKjMTExA6AEAQXaADR7ImF0VXNlcnMiOltdLCJjb250ZW50VHlwZSI6MSwidGV4dCI6eyJ0ZXh0IjoiMTExIn19BwIIAQkACoupX3BsYXRmb3Jtp2FuZHJvaWSmYml6VGFn2gBBeyJzb3VyY2VJZCI6IlM6MSIsIm1lc3NhZ2VJZCI6ImYzNjkwMmVmZjQ1NDQ1YmRiMmQxYjBmZDE2OGY4MjY0In2sZGV0YWlsTm90aWNlozExMadleHRKc29u2gBLeyJxdWlja1JlcGx5IjoiMSIsIm1lc3NhZ2VJZCI6ImYzNjkwMmVmZjQ1NDQ1YmRiMmQxYjBmZDE2OGY4MjY0IiwidGFnIjoidSJ9r3JlbWluZGVyQ29udGVudKMxMTGucmVtaW5kZXJOb3RpY2W15Y+R5p2l5LiA5p2h5paw5raI5oGvrXJlbWluZGVyVGl0bGWmc2hh5L+uq3JlbWluZGVyVXJs2gCbZmxlYW1hcmtldDovL21lc3NhZ2VfY2hhdD9pdGVtSWQ9ODk3NzQyNzQ4MDExJnBlZXJVc2VySWQ9MjIwMjY0MDkxODA3OSZwZWVyVXNlck5pY2s9dCoqKjEmc2lkPTQ3ODEyODcwMDAwJm1lc3NhZ2VJZD1mMzY5MDJlZmY0NTQ0NWJkYjJkMWIwZmQxNjhmODI2NCZhZHY9bm+sc2VuZGVyVXNlcklkrTIyMDI2NDA5MTgwNzmuc2VuZGVyVXNlclR5cGWhMKtzZXNzaW9uVHlwZaExDAEDgahuZWVkUHVzaKR0cnVl";
|
|
//
|
|
// msg = "ggGLAYEBsjMxNDk2MzcwNjNAZ29vZmlzaAKzNDc5ODMzODkwOTZAZ29vZmlzaAOxMzQxNjU2NTI3NDU0Mi5QTk0EAAXPAAABlbKji20GggFlA4UBoAK6W+aIkeW3suaLjeS4i++8jOW+heS7mOasvl0DoAQaBdoEKnsiY29udGVudFR5cGUiOjI2LCJkeENhcmQiOnsiaXRlbSI6eyJtYWluIjp7ImNsaWNrUGFyYW0iOnsiYXJnMSI6Ik1zZ0NhcmQiLCJhcmdzIjp7InNvdXJjZSI6ImltIiwidGFza19pZCI6IjNleFFKSE9UbVBVMSIsIm1zZ19pZCI6ImNjOGJjMmRmN2M5MzRkZjA4NmUwNTY3Y2I2OWYxNTczIn19LCJleENvbnRlbnQiOnsiYmdDb2xvciI6IiNGRkZGRkYiLCJidXR0b24iOnsiYmdDb2xvciI6IiNGRkU2MEYiLCJib3JkZXJDb2xvciI6IiNGRkU2MEYiLCJjbGlja1BhcmFtIjp7ImFyZzEiOiJNc2dDYXJkQWN0aW9uIiwiYXJncyI6eyJzb3VyY2UiOiJpbSIsInRhc2tfaWQiOiIzZXhRSkhPVG1QVTEiLCJtc2dfaWQiOiJjYzhiYzJkZjdjOTM0ZGYwODZlMDU2N2NiNjlmMTU3MyJ9fSwiZm9udENvbG9yIjoiIzMzMzMzMyIsInRhcmdldFVybCI6ImZsZWFtYXJrZXQ6Ly9hZGp1c3RfcHJpY2U/Zmx1dHRlcj10cnVlJmJpek9yZGVySWQ9MjUwMzY4ODEyNjM1NjYzNjM3MCIsInRleHQiOiLkv67mlLnku7fmoLwifSwiZGVzYyI6Iuivt+WPjOaWueayn+mAmuWPiuaXtuehruiupOS7t+agvCIsImRlc2NDb2xvciI6IiNBM0EzQTMiLCJ0aXRsZSI6IuaIkeW3suaLjeS4i++8jOW+heS7mOasviIsInVwZ3JhZGUiOnsidGFyZ2V0VXJsIjoiaHR0cHM6Ly9oNS5tLmdvb2Zpc2guY29tL2FwcC9pZGxlRmlzaC1GMmUvZm0tZG93bmxhb2QvaG9tZS5odG1sP25vUmVkcmllY3Q9dHJ1ZSZjYW5CYWNrPXRydWUmY2hlY2tWZXJzaW9uPXRydWUiLCJ2ZXJzaW9uIjoiNy43LjkwIn19LCJ0YXJnZXRVcmwiOiJmbGVhbWFya2V0Oi8vb3JkZXJfZGV0YWlsP2lkPTI1MDM2ODgxMjYzNTY2MzYzNzAmcm9sZT1zZWxsZXIifX0sInRlbXBsYXRlIjp7Im5hbWUiOiJpZGxlZmlzaF9tZXNzYWdlX3RyYWRlX2NoYXRfY2FyZCIsInVybCI6Imh0dHBzOi8vZGluYW1pY3guYWxpYmFiYXVzZXJjb250ZW50LmNvbS9wdWIvaWRsZWZpc2hfbWVzc2FnZV90cmFkZV9jaGF0X2NhcmQvMTY2NzIyMjA1Mjc2Ny9pZGxlZmlzaF9tZXNzYWdlX3RyYWRlX2NoYXRfY2FyZC56aXAiLCJ2ZXJzaW9uIjoiMTY2NzIyMjA1Mjc2NyJ9fX0HAQgBCQAK3gAQpmJpelRhZ9oAe3sic291cmNlSWQiOiJDMkM6M2V4UUpIT1RtUFUxIiwidGFza05hbWUiOiLlt7Lmi43kuItf5pyq5LuY5qy+X+WNluWutiIsIm1hdGVyaWFsSWQiOiIzZXhRSkhPVG1QVTEiLCJ0YXNrSWQiOiIzZXhRSkhPVG1QVTEifbFjbG9zZVB1c2hSZWNlaXZlcqVmYWxzZbFjbG9zZVVucmVhZE51bWJlcqVmYWxzZaxkZXRhaWxOb3RpY2W6W+aIkeW3suaLjeS4i++8jOW+heS7mOasvl2nZXh0SnNvbtoBr3sibXNnQXJncyI6eyJ0YXNrX2lkIjoiM2V4UUpIT1RtUFUxIiwic291cmNlIjoiaW0iLCJtc2dfaWQiOiJjYzhiYzJkZjdjOTM0ZGYwODZlMDU2N2NiNjlmMTU3MyJ9LCJxdWlja1JlcGx5IjoiMSIsIm1zZ0FyZzEiOiJNc2dDYXJkIiwidXBkYXRlS2V5IjoiNDc5ODMzODkwOTY6MjUwMzY4ODEyNjM1NjYzNjM3MDoxX25vdF9wYXlfc2VsbGVyIiwibWVzc2FnZUlkIjoiY2M4YmMyZGY3YzkzNGRmMDg2ZTA1NjdjYjY5ZjE1NzMiLCJtdWx0aUNoYW5uZWwiOnsiaHVhd2VpIjoiRVhQUkVTUyIsInhpYW9taSI6IjEwODAwMCIsIm9wcG8iOiJFWFBSRVNTIiwiaG9ub3IiOiJOT1JNQUwiLCJhZ29vIjoicHJvZHVjdCIsInZpdm8iOiJPUkRFUiJ9LCJjb250ZW50VHlwZSI6IjI2IiwiY29ycmVsYXRpb25Hcm91cElkIjoiM2V4UUpIT1RtUFUxX0ZGcjRHT1NuOE9RbyJ9qHJlY2VpdmVyrTIyMDI2NDA5MTgwNzmrcmVkUmVtaW5kZXKy562J5b6F5Lmw5a625LuY5qy+sHJlZFJlbWluZGVyU3R5bGWhMa9yZW1pbmRlckNvbnRlbnS6W+aIkeW3suaLjeS4i++8jOW+heS7mOasvl2ucmVtaW5kZXJOb3RpY2W75Lmw5a625bey5ouN5LiL77yM5b6F5LuY5qy+rXJlbWluZGVyVGl0bGW75Lmw5a625bey5ouN5LiL77yM5b6F5LuY5qy+q3JlbWluZGVyVXJs2gCaZmxlYW1hcmtldDovL21lc3NhZ2VfY2hhdD9pdGVtSWQ9OTAwMDUyNjQ0Mjc3JnBlZXJVc2VySWQ9MzE0OTYzNzA2MyZwZWVyVXNlck5pY2s955S3KioqeSZzaWQ9NDc5ODMzODkwOTYmbWVzc2FnZUlkPWNjOGJjMmRmN2M5MzRkZjA4NmUwNTY3Y2I2OWYxNTczJmFkdj1ub6xzZW5kZXJVc2VySWSqMzE0OTYzNzA2M65zZW5kZXJVc2VyVHlwZaEwq3Nlc3Npb25UeXBloTGqdXBkYXRlSGVhZKR0cnVlDAEDgahuZWVkUHVzaKR0cnVl"
|
|
// msg = "hAGzNDc5ODMzODkwOTZAZ29vZmlzaAIBA4KrcmVkUmVtaW5kZXKy562J5b6F5Lmw5a625LuY5qy+sHJlZFJlbWluZGVyU3R5bGWhMQTPAAABlbMlNng="
|
|
// res = decrypt(msg);
|
|
// console.log(res);
|