UNPKG

@iden3/js-crypto

Version:
864 lines (857 loc) 1.2 MB
var __defProp = Object.defineProperty; var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) { if (typeof require !== "undefined") return require.apply(this, arguments); throw Error('Dynamic require of "' + x + '" is not supported'); }); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; // src/ff/utils.ts var utils_exports = {}; __export(utils_exports, { beBuff2int: () => beBuff2int, beInt2Buff: () => beInt2Buff, leBuff2int: () => leBuff2int, leInt2Buff: () => leInt2Buff, unStringifyBigInts: () => unStringifyBigInts }); // src/ff/scalar.ts var scalar_exports = {}; __export(scalar_exports, { abs: () => abs, add: () => add, bXor: () => bXor, band: () => band, bitLength: () => bitLength, bits: () => bits, bor: () => bor, div: () => div, e: () => e, eq: () => eq, exp: () => exp, fromArray: () => fromArray, fromRprBE: () => fromRprBE, fromRprLE: () => fromRprLE, fromString: () => fromString, geq: () => geq, gt: () => gt, isNegative: () => isNegative, isOdd: () => isOdd, isZero: () => isZero, land: () => land, leq: () => leq, lor: () => lor, lt: () => lt, mod: () => mod, mul: () => mul, naf: () => naf, neg: () => neg, neq: () => neq, one: () => one, pow: () => pow, shiftLeft: () => shiftLeft, shiftRight: () => shiftRight, shl: () => shl, shr: () => shr, square: () => square, sub: () => sub, toArray: () => toArray, toLEBuff: () => toLEBuff, toNumber: () => toNumber, toRprBE: () => toRprBE, toRprLE: () => toRprLE, toString: () => toString, zero: () => zero }); var hexLen = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4]; var fromString = (s, radix) => { if (!radix || radix === 10) { return BigInt(s); } else if (radix === 16) { if (s.slice(0, 2) == "0x") { return BigInt(s); } else { return BigInt("0x" + s); } } throw new Error("Unsupported radix"); }; var e = fromString; var fromArray = (a, r) => { let acc = BigInt(0); const radix = BigInt(r); for (let i = 0; i < a.length; i++) { acc = acc * radix + BigInt(a[i]); } return acc; }; var bitLength = (a) => { const aS = a.toString(16); return (aS.length - 1) * 4 + hexLen[parseInt(aS[0], 16)]; }; var isNegative = (a) => { return BigInt(a) < BigInt(0); }; var isZero = (a) => { return a === zero; }; var shiftLeft = (a, n) => { return a << n; }; var shiftRight = (a, n) => { return a >> n; }; var shl = shiftLeft; var shr = shiftRight; var isOdd = (a) => { return (a & one) == one; }; var naf = (n) => { let E = n; const res = []; while (E) { if (E & one) { const z = 2 - Number(E % BigInt(4)); res.push(z); E = E - BigInt(z); } else { res.push(0); } E = E >> one; } return res; }; var bits = (n) => { let E = n; const res = []; while (E) { if (E & one) { res.push(1); } else { res.push(0); } E = E >> one; } return res; }; var toNumber = (s) => { if (s > BigInt(Number.MAX_SAFE_INTEGER)) { throw new Error("Number too big"); } return Number(s); }; var toArray = (s, r) => { const res = []; let rem = s; const radix = r; while (rem) { res.unshift(Number(rem % radix)); rem = rem / radix; } return res; }; var add = (a, b) => { return a + b; }; var sub = (a, b) => { return a - b; }; var neg = (a) => { return -a; }; var mul = (a, b) => { return a * b; }; var square = (a) => { return a * a; }; var pow = (a, b) => { return a ** b; }; var exp = (a, b) => { return a ** b; }; var abs = (a) => { return a >= 0 ? a : -a; }; var div = (a, b) => { return a / b; }; var mod = (a, b) => { return a % b; }; var eq = (a, b) => { return a === b; }; var neq = (a, b) => { return a !== b; }; var lt = (a, b) => { return a < b; }; var gt = (a, b) => { return a > b; }; var leq = (a, b) => { return a <= b; }; var geq = (a, b) => { return a >= b; }; var band = (a, b) => { return a & b; }; var bor = (a, b) => { return a | b; }; var bXor = (a, b) => { return a ^ b; }; var land = (a, b) => { return a && b; }; var lor = (a, b) => { return a || b; }; var toRprLE = (buff, o, e2, n8) => { const s = "0000000" + e2.toString(16); const v = new Uint32Array(buff.buffer, buff.byteOffset + o, n8 / 4); const l = ((s.length - 7) * 4 - 1 >> 5) + 1; for (let i = 0; i < l; i++) v[i] = parseInt(s.substring(s.length - 8 * i - 8, s.length - 8 * i), 16); for (let i = l; i < v.length; i++) v[i] = 0; for (let i = v.length * 4; i < n8; i++) buff[i] = toNumber(band(shiftRight(e2, BigInt(i * 8)), BigInt(255))); }; var toRprBE = (buff, o, e2, n8) => { const s = "0000000" + e2.toString(16); const v = new DataView(buff.buffer, buff.byteOffset + o, n8); const l = ((s.length - 7) * 4 - 1 >> 5) + 1; for (let i = 0; i < l; i++) v.setUint32( n8 - i * 4 - 4, parseInt(s.substring(s.length - 8 * i - 8, s.length - 8 * i), 16), false ); for (let i = 0; i < n8 / 4 - l; i++) v.setInt32(0, 0, false); }; var fromRprLE = (buff, o, n8) => { n8 = n8 || buff.byteLength; o = o || 0; const v = new Uint32Array(buff.buffer, buff.byteOffset + o, n8 / 4); const a = new Array(n8 / 4); v.forEach((ch, i) => a[a.length - i - 1] = ch.toString(16).padStart(8, "0")); return fromString(a.join(""), 16); }; var fromRprBE = (buff, o, n8) => { n8 = n8 || buff.byteLength; o = o || 0; const v = new DataView(buff.buffer, buff.byteOffset + o, n8); const a = new Array(n8 / 4); for (let i = 0; i < n8 / 4; i++) { a[i] = v.getUint32(i * 4, false).toString(16).padStart(8, "0"); } return fromString(a.join(""), 16); }; var toString = (a, radix = 10) => { return a.toString(radix); }; var toLEBuff = (a) => { const buff = new Uint8Array(Math.floor((bitLength(a) - 1) / 8) + 1); toRprLE(buff, 0, a, buff.byteLength); return buff; }; var zero = BigInt(0); var one = BigInt(1); // src/ff/utils.ts function unStringifyBigInts(o) { if (Array.isArray(o)) { return o.map(unStringifyBigInts); } else if (typeof o == "object") { const res = {}; for (const [key, val] of Object.entries(o)) { res[key] = unStringifyBigInts(val); } return res; } const byteArray = Uint8Array.from(atob(o), (c) => c.charCodeAt(0)); const hex = [...byteArray].map((x) => x.toString(16).padStart(2, "0")).join(""); return BigInt(`0x${hex}`); } function beBuff2int(buff) { let res = BigInt(0); let i = buff.length; let offset = 0; const buffV = new DataView(buff.buffer, buff.byteOffset, buff.byteLength); while (i > 0) { if (i >= 4) { i -= 4; res += BigInt(buffV.getUint32(i)) << BigInt(offset * 8); offset += 4; } else if (i >= 2) { i -= 2; res += BigInt(buffV.getUint16(i)) << BigInt(offset * 8); offset += 2; } else { i -= 1; res += BigInt(buffV.getUint8(i)) << BigInt(offset * 8); offset += 1; } } return res; } function beInt2Buff(n, len) { let r = n; const buff = new Uint8Array(len); const buffV = new DataView(buff.buffer); let o = len; while (o > 0) { if (o - 4 >= 0) { o -= 4; buffV.setUint32(o, Number(r & BigInt(4294967295))); r = r >> BigInt(32); } else if (o - 2 >= 0) { o -= 2; buffV.setUint16(o, Number(r & BigInt(65535))); r = r >> BigInt(16); } else { o -= 1; buffV.setUint8(o, Number(r & BigInt(255))); r = r >> BigInt(8); } } if (r) { throw new Error("Number does not fit in this length"); } return buff; } function leBuff2int(buff) { let res = BigInt(0); let i = 0; const buffV = new DataView(buff.buffer, buff.byteOffset, buff.byteLength); while (i < buff.length) { if (i + 4 <= buff.length) { res += BigInt(buffV.getUint32(i, true)) << BigInt(i * 8); i += 4; } else if (i + 2 <= buff.length) { res += BigInt(buffV.getUint16(i, true)) << BigInt(i * 8); i += 2; } else { res += BigInt(buffV.getUint8(i)) << BigInt(i * 8); i += 1; } } return res; } function leInt2Buff(n, len) { let r = n; if (typeof len === "undefined") { len = Math.floor((bitLength(n) - 1) / 8) + 1; if (len == 0) len = 1; } const buff = new Uint8Array(len); const buffV = new DataView(buff.buffer); let o = 0; while (o < len) { if (o + 4 <= len) { buffV.setUint32(o, Number(r & BigInt(4294967295)), true); o += 4; r = r >> BigInt(32); } else if (o + 2 <= len) { buffV.setUint16(o, Number(r & BigInt(65535)), true); o += 2; r = r >> BigInt(16); } else { buffV.setUint8(o, Number(r & BigInt(255))); o += 1; r = r >> BigInt(8); } } if (r) { throw new Error("Number does not fit in this length"); } return buff; } // src/ff/random.ts function getRandomBytes(length) { if (length <= 0) { throw new Error("Length must be greater than 0"); } const global = globalThis; if (global.crypto?.getRandomValues) { const randomValues = new Uint8Array(length); global.crypto.getRandomValues(randomValues); return randomValues; } NODE: { const crypto = __require("crypto"); return crypto.randomBytes(length); } throw new Error("Random byte generation is not supported in this environment"); } // src/ff/f1field.ts var F1Field = class { type; one; zero; p; m; negOne; two; half; bitLength; mask; n64; n32; n8; R; s; shift; Ri; nqr; t; nqr_to_t; k; constructor(p) { this.type = "F1"; this.one = BigInt(1); this.zero = BigInt(0); this.p = BigInt(p); this.m = one; this.negOne = this.p - this.one; this.two = BigInt(2); this.half = this.p >> this.one; this.bitLength = bitLength(this.p); this.mask = (this.one << BigInt(this.bitLength)) - this.one; this.n64 = Math.floor((this.bitLength - 1) / 64) + 1; this.n32 = this.n64 * 2; this.n8 = this.n64 * 8; this.R = this.e(this.one << BigInt(this.n64 * 64)); this.Ri = this.inv(this.R); const e2 = this.negOne >> this.one; this.nqr = this.two; let r = this.pow(this.nqr, e2); while (!this.eq(r, this.negOne)) { this.nqr = this.nqr + this.one; r = this.pow(this.nqr, e2); } this.s = 0; this.t = this.negOne; while ((this.t & this.one) == this.zero) { this.s = this.s + 1; this.t = this.t >> this.one; } this.nqr_to_t = this.pow(this.nqr, this.t); tonelliShanks(this); this.shift = this.square(this.nqr); this.k = this.exp(this.nqr, BigInt(2 ** this.s)); } e(a, b = void 0) { let res; if (!b) { res = BigInt(a); } else if (b == BigInt(16)) { res = BigInt("0x" + a); } if (res < 0) { let nRes = -res; if (nRes >= this.p) nRes = nRes % this.p; return this.p - nRes; } else { return res >= this.p ? res % this.p : res; } } add(a, b) { const res = a + b; return res >= this.p ? res - this.p : res; } sub(a, b) { return a >= b ? a - b : this.p - b + a; } neg(a) { return a ? this.p - a : a; } double(a) { return this.add(a, a); } mul(a, b) { return a * b % this.p; } mulScalar(base, s) { return base * this.e(s) % this.p; } square(a) { return a * a % this.p; } eq(a, b) { return a == b; } neq(a, b) { return a != b; } lt(a, b) { const aa = a > this.half ? a - this.p : a; const bb = b > this.half ? b - this.p : b; return aa < bb; } gt(a, b) { const aa = a > this.half ? a - this.p : a; const bb = b > this.half ? b - this.p : b; return aa > bb; } leq(a, b) { const aa = a > this.half ? a - this.p : a; const bb = b > this.half ? b - this.p : b; return aa <= bb; } geq(a, b) { const aa = a > this.half ? a - this.p : a; const bb = b > this.half ? b - this.p : b; return aa >= bb; } div(a, b) { return this.mul(a, this.inv(b)); } iDiv(a, b) { if (!b) throw new Error("Division by zero"); return a / b; } inv(a) { if (!a) throw new Error("Division by zero"); let t = this.zero; let r = this.p; let newt = this.one; let newR = a % this.p; while (newR) { const q = r / newR; [t, newt] = [newt, t - q * newt]; [r, newR] = [newR, r - q * newR]; } if (t < this.zero) t += this.p; return t; } mod(a, b) { return a % b; } pow(b, e2) { return exp2(this, b, e2); } exp(b, e2) { return exp2(this, b, BigInt(e2)); } band(a, b) { const res = a & b & this.mask; return res >= this.p ? res - this.p : res; } bor(a, b) { const res = (a | b) & this.mask; return res >= this.p ? res - this.p : res; } bXor(a, b) { const res = (a ^ b) & this.mask; return res >= this.p ? res - this.p : res; } bNot(a) { const res = a ^ this.mask; return res >= this.p ? res - this.p : res; } shl(a, b) { if (Number(b) < this.bitLength) { const res = a << b & this.mask; return res >= this.p ? res - this.p : res; } else { const nb = this.p - b; if (Number(nb) < this.bitLength) { return a >> nb; } else { return this.zero; } } } shr(a, b) { if (Number(b) < this.bitLength) { return a >> b; } else { const nb = this.p - b; if (Number(nb) < this.bitLength) { const res = a << nb & this.mask; return res >= this.p ? res - this.p : res; } else { return zero; } } } land(a, b) { return a && b ? this.one : this.zero; } lor(a, b) { return a || b ? this.one : this.zero; } sqrt_old(n) { if (n == this.zero) return this.zero; const res = this.pow(n, this.negOne >> this.one); if (res != this.one) return null; let m = this.s; let c = this.nqr_to_t; let t = this.pow(n, this.t); let r = this.pow(n, this.add(this.t, this.one) >> this.one); while (t != this.one) { let sq = this.square(t); let i = 1; while (sq != this.one) { i++; sq = this.square(sq); } let b = c; for (let j = 0; j < m - i - 1; j++) b = this.square(b); m = i; c = this.square(b); t = this.mul(t, c); r = this.mul(r, b); } if (r > this.p >> this.one) { r = this.neg(r); } return r; } normalize(a) { if (a < 0) { let na = -a; if (na >= this.p) na = na % this.p; return this.p - na; } else { return a >= this.p ? a % this.p : a; } } random() { const nBytes = this.bitLength * 2 / 8; let res = this.zero; for (let i = 0; i < nBytes; i++) { res = (res << BigInt(8)) + BigInt(getRandomBytes(1)[0]); } return res % this.p; } toString(a, base = 10) { base = base || 10; let vs; if (a > this.half && base == 10) { const v = this.p - a; vs = "-" + v.toString(base); } else { vs = a.toString(base); } return vs; } isZero(a) { return a == this.zero; } // Returns a buffer with Little Endian Representation toRprLE(buff, o, e2) { toRprLE(buff, o, e2, this.n64 * 8); } // Returns a buffer with Big Endian Representation toRprBE(buff, o, e2) { toRprBE(buff, o, e2, this.n64 * 8); } // Returns a buffer with Big Endian Montgomery Representation toRprBEM(buff, o, e2) { return this.toRprBE(buff, o, this.mul(this.R, e2)); } toRprLEM(buff, o, e2) { return this.toRprLE(buff, o, this.mul(this.R, e2)); } // Passes a buffer with Little Endian Representation fromRprLE(buff, o) { return fromRprLE(buff, o, this.n8); } // Passes a buffer with Big Endian Representation fromRprBE(buff, o) { return fromRprBE(buff, o, this.n8); } fromRprLEM(buff, o) { return this.mul(this.fromRprLE(buff, o), this.Ri); } fromRprBEM(buff, o) { return this.mul(this.fromRprBE(buff, o), this.Ri); } toObject(a) { return a; } sqrt(a) { throw new Error("Not implemented sqrt for F1" + a); } sqrt_e1; sqrt_q; sqrt_s; sqrt_t; sqrt_z; sqrt_tm1d2; }; function tonelliShanks(F3) { F3.sqrt_q = pow(F3.p, F3.m); F3.sqrt_s = zero; F3.sqrt_t = sub(F3.sqrt_q, one); while (!isOdd(F3.sqrt_t)) { F3.sqrt_s = F3.sqrt_s + one; F3.sqrt_t = div(F3.sqrt_t, 2n); } let c0 = F3.one; while (F3.eq(c0, F3.one)) { const c = F3.random(); F3.sqrt_z = F3.pow(c, F3.sqrt_t); c0 = F3.pow(F3.sqrt_z, 2n ** (F3.sqrt_s - one)); } F3.sqrt_tm1d2 = div(sub(F3.sqrt_t, one), 2n); F3.sqrt = (a) => { if (F3.isZero(a)) return F3.zero; let w = F3.pow(a, F3.sqrt_tm1d2); const a0 = F3.pow(F3.mul(F3.square(w), a), 2n ** (F3.sqrt_s - one)); if (F3.eq(a0, F3.negOne)) return null; let v = F3.sqrt_s; let x = F3.mul(a, w); let b = F3.mul(x, w); let z = F3.sqrt_z; while (!F3.eq(b, F3.one)) { let b2k = F3.square(b); let k = one; while (!F3.eq(b2k, F3.one)) { b2k = F3.square(b2k); k++; } w = z; for (let i = 0; i < v - k - one; i++) { w = F3.square(w); } z = F3.square(w); b = F3.mul(b, z); x = F3.mul(x, w); v = k; } return F3.geq(x, F3.zero) ? x : F3.neg(x); }; } function exp2(F3, base, e2) { if (isZero(e2)) return F3.one; const n = bits(e2); if (n.length == 0) return F3.one; let res = base; for (let i = n.length - 2; i >= 0; i--) { res = F3.square(res); if (n[i]) { res = F3.mul(res, base); } } return res; } // src/babyjub/babyjub.ts var BabyJub = class { F; p; pm1d2; Generator; Base8; order; subOrder; A; D; constructor(F3) { this.F = F3; this.p = BigInt( "21888242871839275222246405745257275088548364400416034343698204186575808495617" ); this.pm1d2 = scalar_exports.div(scalar_exports.sub(this.p, scalar_exports.one), 2n); this.Generator = [ F3.e("995203441582195749578291179787384436505546430278305826713579947235728471134"), F3.e("5472060717959818805561601436314318772137091100104008585924551046643952123905") ]; this.Base8 = [ F3.e("5299619240641551281634865583518297030282874472190772894086521144482721001553"), F3.e("16950150798460657717958625567821834550301663161624707787222815936182638968203") ]; this.order = BigInt( "21888242871839275222246405745257275088614511777268538073601725287587578984328" ); this.subOrder = scalar_exports.shiftRight(this.order, 3n); this.A = F3.e("168700"); this.D = F3.e("168696"); } addPoint(a, b) { const F3 = this.F; const res = new Array(2); const beta = F3.mul(a[0], b[1]); const gamma = F3.mul(a[1], b[0]); const delta = F3.mul(F3.sub(a[1], F3.mul(this.A, a[0])), F3.add(b[0], b[1])); const tau = F3.mul(beta, gamma); const dTau = F3.mul(this.D, tau); res[0] = F3.div(F3.add(beta, gamma), F3.add(F3.one, dTau)); res[1] = F3.div(F3.add(delta, F3.sub(F3.mul(this.A, beta), gamma)), F3.sub(F3.one, dTau)); return res; } mulPointEScalar(base, e2) { const F3 = this.F; let res = [F3.e("0"), F3.e("1")]; let rem = e2; let exp3 = base; while (!scalar_exports.isZero(rem)) { if (scalar_exports.isOdd(rem)) { res = this.addPoint(res, exp3); } exp3 = this.addPoint(exp3, exp3); rem = scalar_exports.shiftRight(rem, scalar_exports.one); } return res; } inSubgroup(P) { const F3 = this.F; if (!this.inCurve(P)) return false; const res = this.mulPointEScalar(P, this.subOrder); return F3.isZero(res[0]) && F3.eq(res[1], F3.one); } inCurve(P) { const F3 = this.F; const x2 = F3.square(P[0]); const y2 = F3.square(P[1]); if (!F3.eq(F3.add(F3.mul(this.A, x2), y2), F3.add(F3.one, F3.mul(F3.mul(x2, y2), this.D)))) return false; return true; } packPoint(P) { const F3 = this.F; const buff = new Uint8Array(32); F3.toRprLE(buff, 0, P[1]); const n = F3.toObject(P[0]); if (scalar_exports.gt(n, this.pm1d2)) { buff[31] = buff[31] | 128; } return buff; } unpackPoint(buff) { const F3 = this.F; let sign = false; const P = [BigInt(0), BigInt(0)]; if (buff[31] & 128) { sign = true; buff[31] = buff[31] & 127; } P[1] = F3.fromRprLE(buff, 0); if (scalar_exports.gt(F3.toObject(P[1]), this.p)) return null; const y2 = F3.square(P[1]); const x2 = F3.div(F3.sub(F3.one, y2), F3.sub(this.A, F3.mul(this.D, y2))); const x2h = F3.exp(x2, BigInt(F3.half)); if (!F3.eq(F3.one, x2h)) return null; let x = F3.sqrt(x2); if (x == null) return null; if (sign) x = F3.neg(x); P[0] = BigInt(x); return P; } }; var F = new F1Field( BigInt("21888242871839275222246405745257275088548364400416034343698204186575808495617") ); var babyJub = new BabyJub(F); // src/poseidon/poseidon-constants-opt.json var poseidon_constants_opt_default = { C: [["CcRunsaOm9T+H6q6KUy6OKcaoXdTTN0bbH3A29Cr16c=", "DANWUwiW7sQql+2TfzE1z8UUKzrkBbg0PB2D/6YEy4E=", "JQ9RFqQX12qqQilS/MWzMyn3cU/CbVbAQyUH/HQKh8Q=", "JkBlrYdXLgFmWWJsM8ghP3o3O5uCJaOE9FjYULtKlJ8=", "K7jpStjYrcps6Qn/lLh1BymylORAA3baOeM/2iS9Qq8=", "GQUQZdBdhh7IE8FSkdRqMo9iAbIa1dI51Phfuwml264=", "JFvQYXqkSWGPW9RVCqx7jgjU0cAXFllDzfR3bN/zQ0o=", "CfsaERgHT/edisv1sCEx4EihVwFV4PKxw2rQkdSRqI8=", "I0q1BLuugZiXJ0GVL3i36wGOoZLwXlTBSEq4lz/2bYg=", "AfZuUJuEw1WuPUw1E6KC/Uj5yMZDn0Kng1+8/g8qMkw=", "GyL11p1yXmACzwDdnuYtGlrw79xJEPVBJ6kgzMQ/kfo=", "AlK1Xt6tE1+FKWi38cT0kPplns1bR6eKfbkfZabfwj8=", "F3OuLhY3ySrQZ3wqBH/qjspLUzA/IYcfaJKiwEh9f/E=", "LVewKQbNCrgqeedvru9vh2ZurAk893FWRdXsn3rHMvU=", "ChbzpigksoHost24/DkaSY+wYTF/r/oDaW+DRZYxPZM=", "Fmb1Jff0tpiNKjeDSrdH6uBYd1e3iOt/HiawjjaghZE=", "BdpE+OCjuLsTIx8MoltQtX9cghKOHf7D5UHZEuvhe3Y=", "CaObqZkzA7oZG6yL2z4BRNv7XzliTN2VJNx4YWM7yVo=", "BsD7gkoZIC0w7mtBjAAp4QDoWm0Vj58qgo39LtCSCmg=", "A4fY4FaysXapd2tEkss7QYrcZgYn5SuzMkKDv5UiOV0=", "FHoa+CA271sop6N76kDWrDATzxtiNYOWv3FW9cLcloQ=", "MDjZIGDa6q8b0Egr0/BhPYjo3/kKegUl+SJ+TLfG+Bs=", "BylAqh1Tilo5oyP55dZWFs9sIjM5AG+XialyRVMpCPU=", "LT1gSUn04UxwuKh5rt7Emzo2e6IWrwSPRk7W8V4rkCM=", "IlueTzXHVJ+Ad0wrTRgwmy3PfHKHuYLkl0ahdmQec8U=", "HqeBKI/fE7IZAJWiNEgo433+gcdaCXCfDRObu/bHBBQ=", "COlsPn6N5EMrICQFRYRouQ3GiQ1M7hKLNQLltstK7us=", "BbQ9p8iqKa9tyq5X0HC0nSnOiJpkpKwYPoXVWzZsgF8=", "vsmKA047ive6SGHxrVpI3O98mW56UcfN3nJNj2EOUg==", "LrZ8z6KeK0Irn4Sl0FdfxDWzD8rjAwOUgL44TuTr5yo=", "ECu9who/FHvwTu3uXXC9CEpxBcYxyG7NLE6HSaE5Fco=", "J0vBbIhyG6v9W76NhWLBvxJ644kVKA+7jjEVytNYL3k=", "GFzs5BdUmyUoPeBFEfdpEByIULQJ1JKKuDFhE1G9mTg=", "E8c/sEP36Xi8nPtVx/qstPTII2dKvhdzcFmsCjLDYAc=", "JLOh2DMIdCs2DJxgWVZz4gHN1M71pBRckzxOWWlIHXA=", "GLWulN+eyXqqKo8PQkJbzM3IJmoHD4Zu8PSNejdEOYs=", "IOs5jLlYzCzMfLH6w4UBq744FpsthSLZ5fCZ8tWQXLQ=", "HliN0+yLDSUsLHwMeKArIru60fTcqi54qLju8vTik0Q=", "D4vzvWwiujsb86suP7QIGM1CF/+68pTKQjMdTjBDoKY=", "A4jJ/PMPwoQdZI9GutAd0QvuncGE0l6ryfYXAhEJzsM=", "K7fzl8WUGsZ776iyMvFciFPawmPaeTVVRBqQzsg7ZFQ=", "F/OJtS+ep6mIdKSjHvanvrQ/sX2w5JklC7PwGBxZ+yE=", "A6IJDqy4l6MfsQVh1WCpruwkt60U0XsUXyDIdaCyjHw=", "DDmFNPDrWA8f5L9kVTOJ5nzKRxQ5lDDglhncvuF7oJk=", "Bwlayf2kavp/GBJZ42Nf7/p/Ee5j8+53elzr9IIjKMQ=", "IEb3zxyPE+8racvIvA1dgJ+CVoq+KzPRzQYJWLHO1oM=", "LCdBNqXeKEnebn+S+QlyllAay2jVYTj7y2YMTLD2kQc=", "HE1ReKy1xrbs7vI6/G8W7HsDgwlMtkZ+jQ9FB7PPdMM=", "BlsUR9DWTOztEWeFuSxjpqfdlwFQfcvouQkyXij3uNM=", "ImXX4kSIEiDIGhk9l5MwQJyb+jM0OJUTQOAj57cqGWE=", "FbErNVr34FY3ocduZ/nOxvyopkSbN2afaFBQIlazCro=", "GhUi/sxq4Cjk0+MClJe4jzXCtIxoevFo7CWC2QdbQ4c=", "IvVueegbdJbkcqZBoFPEFLzFOwqTUOJYkkCAMHb1jyY=", "IC3bZtCYiZTnqrrWks6sTiMkZyoXq4QX0e4niv0X/Qw=", "ErBwHogTxbIajjAgj48RWLls1Ciud73qcvhFEPc+384=", "HmP9IOcG4UB8iDjOsmuEyf5pP93g6x4anffoTlPu7n4=", "IKFsWoYlbe/9Fa8XTDn52aoRUAZ2rH5XAIgoDdGJYlk=", "HI+L+OFT2lWtWsouqu442lY+BDXA8vN8J1WPubrgo+s=", "DXcyaHu3v186q8/cxPu2fhWcGYMhPkFsOIAST93xh8k=", "DN0ER1qGmZou3Lu/gmSxleEIs7YLZHXYNfbM754vaGU=", "L+ZVhs1OdUtMY6iMLtP5ug47+kP1R7QRU1YMIU/jy80=", "BQPPljyCc2BOZZEo7CkmH2I5mBXZjFbb9PKDfHJ61Nk=", "HuSOong5Bht4N5k29tl8qUALOT71/fOO8Udch0LLM0w=", "GkI/jY/IkrItfNW/AZfFdcV56DVj0EhZ1zssHFwEE/k=", "BpoNpQEz6ZUvAOYXeJcqe+Do2Kt2yVYWrkZWNqu5fsc=", "G/eHndQvLLuRxloJdjVvZ5ZML5Tfvw5EzyuZCRZdhhQ=", "GyPcz0hYIgZcj8Cv5hC+cWTiUFYmf2xKgF//1FR6C5g=", "Lr6Q1vb9ykIODC4ATOXFpECeVkycTzZx4wEfYnvsfC4=", "FnzWkwU1qBbf6+gdIMN253aHdg86L6DaKQsvTWxoY/c=", "CIZcEPSmM8VMzItot53yhfGfEhA3TMZOPIqWbU+QJks=", "HekC+8C/AZUcolq7OdeIlHIbN+BxhRsDpyzGuDO3iTs=", "Dj7KAHaZ3Q+FLrItpkLklfZ8mI3VvwE3Z2sWox6rRmc="], ["DumlkrqalRjQWYbWVvQMIRTEmTwRuymTjSHUcwTNjm4=", "8URSNfIUjFmGWHFp/BvNiHsI1NAIaN9Wlv/0CVboZA==", "CN/zSH6KyZ4fKaBY0PqAuTDHKHMLerNs6HnziQ7Pc/U=", "CE1SDk5btGnh+Qdct8SQ76WVZe7a4tAMqO+IzuorAZc=", "LRXZgtmVd/oz2lZyJBb9c0s+ZnovnxXY6z52euD9gR4=", "DtJTiESroWHPFXikPPA2TpFgH2U2pZltDvvmVjLEG20=", "JgDCfYefvKGG5znmNjxxz4BMh32Cm3NdzD468ClV5go=", "KPi9RKWDy6pHW9FTlkMOfMuZpVF0QN/ZcAWFWCgr8sU=", "Cc19TDgNxUiHgarQEufq7x7TFNf2l6VXLQMMVd8VMiE=", "Ebtu4Skaq7IGEg7KrORg0ktnE/6+giNJUeK+59D4VfU=", "LXTo+gY32YUzEPPA4/rh0G8XFYD1uP0FNJyt7s/OsjA=", "JzXk7J05vf+sm+8xusujOLGglVmlEaGL5LTTFu2IkDM=", "DwPB6eCJXbGl2mMS+qeOlxEGwz+Cbgjc9hfiQhMTLf0=", "FwlM0pe/gnyvkpICBbcZwYdBCQuPd3gRhIp+nq1neMQ=", "Dbj0GcIfkkYfwrMhlGV5g0jfkNQXgELIG6fUtNVZ4rg=", "JDRDYT9k/6QXQn7Vkz/PvGaAnbYLnKFySiJwnOzu7OI=", "Iq9J+/1dfp/NJWwlwH092Oy7rm3uzQOqBLsZH62nVBE=", "FPvTf6itbk4MeKINk8cjDEZ395e0MnMj9/fAl8GUIOA=", "Fakpi7uIJTTUssn7xuTvQYlCDE6z8+HqIvqn4Yta5iU=", "L33nXyPdqqUiEyPrzrLyrIPu+S6FTnVDTC8dkFYiMrw=", "A2pEMqhoKDt4oxXoTErlrsohby/56bLmI1hPdHnNXCc=", "IYDXeGqM+BDidyGKsUoR5eOfPJYvEehgrhxWgseX3lw=", "CiaO+HBzbuvQy1W+ZA1z7jd4mQSEzAPOU1cjd+7/+OQ=", "Hu/v4RwL5GZPKZkDHxWZSCnpgujJDgkGnfm64WgJpbI=", "J+h/AzvR4KicpZboy3f+OkuPuT2aESmUZXGjw88kTFI=", "AUmKPmWZ/iQzIfV9bFQ1iJl5xPnSo+GE0hRRgJF47jk=", "J8CkH0y5/mfp3U184zcH901da8wjW+8Qjeobvr3lB6o=", "H3UjCQixQbRmNyOLEg/HcPT0roJdUATBanyR/h2uKA8=", "JfmakZjpIxZ7uoMbFf/9LXuXs6CJgI1OsfCghb7iFlY=", "EBvDGOnqWSDQ9qzcK7UmWT09VuyO0UxnYil0IoupAMY=", "GhdWBwZ9UXOXwTNOywGXVOvAyFKjzwkewczEMgeoPHY=", "DwLw5tJfnqPeskXz6MOB7msus4C6SvXBxNiXcBVd83s=", "FR11esyCN68I2KZncgPslpJWXeRWrnif81izFjs5O8k=", "JWzZV3zqFDBJ4KH+AGjdIAhJgO5bdXiQp50To6Yk+tQ=", "BROrr/YZXqSIM7E9pQ4IhEdmgsP73RlUl7iuhuGTfGE=", "HZVw3HCiBfNvYQJR7m4ugDkkboTkrESDhtGdusTkplU=", "GPGlGUdVuMXV1/G/iqpvVu/7AS3XhM9eBE7sULKfydQ=", "JmtTthXvc6yGZRLAkeSk8vpLsK+WbvQg2IFjI47rvKg=", "LWMjTJIHQ4qkK43idkTAImgwTf64yJoaP0/W6DRK4Pc=", "KrMPvlHuSbx7Ot3iGabwtfu5diBe+N9+ACHa7m9VxpM=", "Gu5tSz6+k2bcuczkiWnU3x3EKrzVKLJwBo2SB/pqRck=", "GJGuq3HjS4laeUUuWGSuHRH1dkbGC7NKohHRI/YJUhk=", "JEkrX5XAsIdkN+lLQQHGkRjhayZXdxvTp8qrAcgYqks=", "AXUhYbM1D34bOyyGY6DWQpZGKCE9ZsEKsv3fcbz95o8=", "CrZ2k1ci4vZ8+4STjmFMbC9EW40UjeVDaM+4+QoA86c=", "Cw9yRyuaL19FvHMBF+2a5Wg/wubiJ+PU/g2h96o0gYk=", "FqpvknOs1WMcIB0aUvxPisryshUsOubfE6eKUT7c02k=", "L2C5h+Y2FOsTwyTB2HFusL9i2bFV0jKBpFwI1SQ1zWA=", "GNJK4B3ekv12Brt4hFVOnfHLibBC9Qj9nbdrfMGyEhI=", "BPw792/jHi+Nd2NzEw33nRjDGF/fFZOWBxXUckz/pYY=", "DRj2tT/GlUbP3WcLQXMr323ungayEmDGtdJicEaNv4I=", "ukIxqRjxOs7BH7r6F8UiPx9wtM2wRQNvpdcEW9EOJA==", "B7RYsuAM18YQCYUwFmPn7DPIJtoGNf8evt0N2GEgtMg=", "HDXC2W25D09gWOdvFaDIKGu6JOLtQLFs7Dnp/XuqV5k=", "HRK+o9jDKl12ZWjwPdHs2wpPWJq775aUXg3eaI4pIFA=", "DZU+IAIgAycFJfmnNSbpiJyZW7Yv3qlDE9tAWmEwAoY=", "KfBT7DiHldeGpAvsTIdQR/Bv8LYQtAQKdg4zUG0mceE=", "BBiOM3NfRrFKSVKphGO8EuJk1fRG4MP2S5Z5yqrkT8I=", "FJ7CiEbU9DioTx0FKUMbuemWpAi36X6zvxc1zb6W9o8=", "DeIPrgr1GIvKJLX2NjC61Hrq/ZjmUZItFIzOHF/d3ug=", "EtZQ6PeQsSU+qUNQ5yKtL32DbCNLhmDt9En7pphMZwk=", "IqtTqjnzStMOqWcXunRGqv2tvBqKvijXg0DfxLq7j2w=", "JlA+jUhJvfVFDavqeQe8PeDeEJhx3XdpBKEp25FJFmw=", "HV56Dill3/oA9UVPUAPFyOw0sj2Jfn/EyAZANbDTOFA=", "DuPY2qCYvuAS2Wt+xIRIxryaau+lRGFbnLPHu9BxBMs=", "G/KCCCoEl5lV0wdUzU2QVvqe96cXVwPZHcIytfmOrQA=", "B64TRKv8bCzj6VG8MWvuSZcWRfFraTczoCchc+6a1GE=", "IX46JHgnw3bsIbEx1RHX29yYo2t6R9l6XI6Jdi7oBIg=", "IV/+WEsOsGegA9Q44vvii6vh5Q78KJQRdQm2Fq3cMO4=", "HncPyOy/3IaS3O3Fl8TKD77Bm4TjPaV0EqktHTzj7CA=", "L2JDzakZv0yfHjqKbWagV0KRT8GTOLPA5Q6Cj2n/bR8=", "JG793DEX7NOVldAEb0SrMDoZXQ6cyJNF08A/+HoRtpM=", "U+jZs+pbjtT+AG8TnLxOAWixyJqRjfvmArxizsat8Q==", "G4lKL0XLlmR9kQ9qcQ04t+tPJhvu//E1rsBMGr5ZQns=", "CusVVOJmaT2CEmUkeRB9X9wHer+IZR9aQlU9VOwkLMA=", "Fqc19vcgnSTmiIaA0XgcfwS6fXG9S30OEfr52o2coo4=", "BIe4t/q1/I/XwTtN8FQ80mDkvLthWxk3T/VJ3PBz1Bs=", "HnW50sIAYwcSS+omsHckk8+11RIGjDrWd/31HJI4h5M=", "BRIOPQ4oADwlO0bV/3fScq5G+h4jnRxslh3LAto7OI8=", "DaX+tTRXZJK4Iuh2MkARmsCQCgU7Fxgj+JD1/VXXg3I=", "LiEbOaAjAxoirMGh9fO7bYwmZqY3nZ0sQMyPeLe9mr4="], ["GbhJ9pRQsGhI2h05vV5KQwK7hnRO3CYjiwh44mntI+U=", "Jl3f4SfdUb1yOTR7dY8KEyDrLMdFCswdrUf4DI3PNNY=", "GZdQ7EcvGAng9mpUXh5RYkEIrIRQFcKqPfw2urSX2Ko=", "FX/z/mWscggRDwal90MCsU10PqJQZ/D/0DL3h8fxzfg=", "Gw9o8HJqBRSk0Fs3e1iqvEWUWELnAYN4Skq1oyM3uPg=", "EijSVleHFAQwVp1pNC03TYVQnepCRdtHn97xpCXidSY=", "F6h4Ts3N1uVQh1w2qJYQ97jB0kXVL1P/lu65EoNYXgs=", "CYcKi0UHIqKy1e566GWq8KoArc/DFSCjLgzqolCq668=", "Hh1qqpAldOPkBVxrbwOkmyu9t4R/lA68eMCm0/k3KmQ=", "KBbE+msIVIfh7sHu/ZLun+9A8wGQrGEAkQPQMmZVDbI=", "FzWf2Ivja6hnAA6D92/7RmYGNO+60V3PTU1QLUJ/9Rw=", "DjAEy0S6RVo/Fv770MAmQEy6wgPA8ja6rYeWELhmECI=", "ClXydq8c6268bGgg8zSybxHKSvmMgzvBtJYZPWsEp8o=", "Ae5LBFitzUxIYaJ63BQEpZgdMgtrjiDlHTG5uHfoNG0=", "FDFeJ1Pn+5T3AZn4ZF14+HwZSkBU5phys4QdobT0gvE=", "K3tj7P/VXZXGYPQ1rZ4uJfJmy1fhfr0baw116IpqVtY=", "u1b6Pp/UirRtTnKVu+EgS2UuvpWCIYYPVuONuA2DwA==", "BQZTv13Vnt1tFfpgcfUAUFchizOo+SpYucJlYIEkn4I=", "LFdUI+JLUiZVxal2xl0GkoeQDI1YJVFAmMWxPIbx/Nw=", "L/OizN7pHgmjL3QjK3BM3Zn3LB94VXos5WiwfiGAcdc=", "EURzSQGoHBVDuLxvydNl9QRp64mUlJHTaT2+nGI42Qw=", "Hv+alU4kvNSvILardNieHNOLxpSp516m2iF6mNuAzSI=", "FHB950lsVjj5f+m9fUhcIOrWv9v8BZl5Hkn60DAc1t8=", "E9DeNBuoGfkP4+8ffOClTYU4rN2bPvhAqR1I7lNgQrg=", "JlIKsdIAVdre1xLVmwcIhFjBivvQ2liu6fFRqQM3K6E=", "Boy0gnrEhfxudTejwKBtCKTCeQ9cZdmGbXUpaZn3SV8=", "B9a6qi5YfCGwPfoOtxE24pgss4m0OMi8KCdI0OZ06J4=", "FbktNtsCyxa4Me6rLm7XXRJv+8J0zDNiNwhRUm3hPSc=", "J3uc6JEz3nt5GK1fz6tzI+9bnBkWtYjNfloNgUy8M5U=", "KuhHtms8XXO3C3MwQKqGxR9zcJLWXDSS1SkAD6GAKyQ=", "L6Porh/vl0ze1qum3CXPVn4W4K8p5nVwZkPyG/jv1lE=", "Cx1LlQjOxNGapT9O/kbFeVLb02j8vNRUqLEIe8GKIIg=", "AtOBAU0BV4uIizJzJwur3Dk6w5LnlYvgR4lH+vpWm7A=", "LnmoJ8hUBiQlI6lEMQBwIbyGWkXKvLpDaMQdRIb+/sg=", "AgfJm31ZSlxh1+YMwjZcTAyATNQ0CYr2JE8KAMJZs0c=", "EZwSQIbqWOu4PxTyYsaTQkNg6X5vtCroWWutvp7bLco=", "EE/zjMoPABc8zQtovdugn8VD8HT3U72OQT+DNPiHolE=", "L1tTd70Vb4mEWBHrJiQ2Y43AOLjLEOFHqH30wOI4QlM=", "D3Do4C0dI5aJMKjg22mxwgIE8+O0zs0QH4FHbQteqZY=", "GsRlOlEHGuci+QoD8AbYV1gU23grfxn2B9rk1WrVhrM=", "ErEmAOO/2Oe9+uXvnE84BfpB50rKv33oF4IwF6iyPbk=", "EbnRmQiRnay34PjQuncobUF1KaGKHYnEBe0cMCif3Sg=", "LDUNJF9PdYZHRPiNv/j+M1sA9PtoiJXBNjp0hKzoINM=", "Fqf3b9KyFH2275TCLHi/94LeF+9z5S2n34JgP0IrRh8=", "HRjYAkvh6W7CViavBqE59gk1RapQQDPax+KF0cw9s94=", "DIyrGtWZgHKUW5uIIo9TwpVGaBn7lNj2qe1Em+j3wYw=", "GmjRM9cDzUBsowBBkTzjQjxzsTOEGHqxUwEJt1atT3o=", "JKWLnobOgj/0xFNClBQX/yPQPID83vlJjKDYYIVeAak=", "DmMVyT+7idOAIRSLbDUyD7eTxBxqQ4bWrtas/i+VLFc=", "LDgG2ZppzmMpnodvXyGMcpXYciR5XXVo1VhpbjTGkvg=", "BZyJOncelHdNSaNWSUVo3TdoVquJcF3/JduCc4YPoE4=", "EWbZgZxPquiYIkPQ3rH4l3An1cxWv1LOJgvsXifosPU=", "EoBvqz/LCfwreUBsPCA8SWX8clkRKvIQQxLhU3Mn4KM=", "FyAV4OM3NgWPYKoz6C091z3D6tifmN7Q26NdzB2L2iw=", "B3uhiADYUtCjT3CujP1ooIApa/nUehtA3n5v1jkqDTA=", "IJTs12i/qPDfDXjQ2Ubhr/Si044CnkFHnW48D+efqLk=", "DM69MCr+hMIP93TTwfZQynzQvKCLqh4mHanHRBqCP4k=", "W5MDBTu0DHNnH11VtAUuDVVJhx8bUoPwFIWmtWjNBQ==", "JScokISrSSJ1tM1n04MRorgW6qaO5r2yOJ7u/WukxyE=", "IiL5c4KQ2NXyo+rNrZXxLNTnQX7SZhsBL2RIx1A4d/I=", "ImyCCPJtaea34C/iZVfmvRYPy+J+50H9HlgRYcF4k1Q=", "IWsgjAJh88kfr2CeFfep1IU+QNkgRJayRBEV1zwpQcU=", "Dg1mDgRqJZ87rWgpcptq4xUfvNdd4zsSL+E0yj1aTdY=", "JA8DnSAmsyZvObpcTsSKxqzoiq2u+ZFJjNUtqqD/u6g=", "KMjMz3tAosPP0u7g7E0WCodqTf60CP/jM+kvpeHuTXk=", "DX+BtLRtTyR8QkPwRahSzJV9Kykj0o6y+ne1qYRO/Wk=", "K+Qy+HssUJSoLHiEV2Ud2M2wIArDtChgy/VEdZlrdy8=", "E+o58tY9mtrhh68U3Qe1M9RaY0NeDqTl5VXTXnDUAWs=", "KeOxr+GXO+nNHPSwRzJav6plzyuY/zrtR4cEYZd+ySE=", "CNt9aE5rhBtelpJJj5Wh+VChzx62OLtOSPO8GjxXEZc=", "D08QQal2qgUZbaHAQhJOMnfqGij7bu6rS+wSQ70xYYs=", "BanQUm1vGMhrJV8A6G7DTn+KJsJRtRwh/kwSvcTA/x0=", "KEsDBN1s5mm89lDFq4XInUQQ1HKqbrAN8bjRflLy8/8=", "I2PpsBoBY1mJYv+GkHAC+VkC5yUEkpTKerEMx6o/Bro=", "AsLbEmR8TARh3TKQp1xfL9jX8RWz4EDLBd1+OtJg2EI=", "LjxC9nFDH5Vg89CGOsRFBSQi1bmT6f2muBSGsU/+OnQ=", "HThEHyKMDOIv8oglYPXX7jtMDKoQE3HLd4L/2Xr1//E=", "JoFBsOScWeqx1XPq1OLh83k2TdEz8s7FdMJa3ix5Qoc=", "IgnLLhh98VIoENPyiGjabPUq+aZdvXuAYEn0ctlmN0o=", "Cl6yUQ5vgE0YMNeXSsFnfQggNOU4i/rukaMZ7KfB/6s=", "HLKGTDiABzb4862YZp0616nV7lITjpa4pwFeEInjauA=", "KvjtBb/I+K2lR+6bxsfGxejBXGwNOAo/mqJ3JzMhtU4=", "D4XRWTs1vgP3myIohVVaJSvx8KORHXhBMsSbGpasDzw=", "KQlRkuxT4LhZ66RWKV2VvEVn01Gm2tORuLiXB4VQCMU=", "GpLv3h9fpWrrArTEuPUayAgx+JjHhDQHET+7YBEXeFQ=", "KgXo3u6hXkN3wICqcP1qhtxz8/36a1X1YQYUwYSwsC4=", "EhGfOwGcw/xG7MgIk+hvUQsd1AMLLOKMna3NHnGtSJE=", "BCtv/mh7wjor9rczFyhqVDxg7RIvwiWq50LDocLdOh0="], ["DrVE/uKBXdp/U+KcysmO19iJu069R8OGTzwr2BptqJE=", "BVTXNjFbhmLwL9un3XN/vKGXrrEupkcTunM/KEdRKMs=", "L4O53yWbK2i810gFYwfDd1SQffDA+wA19Qh8WNXowtQ=", "LKcOLo1/OaEkR6yDBSRRtGHxX4tBp17zGRUgj1q6loM=", "HLX5MZvmpF6RsE1yIicclJlBlvEu0ixdTscZy4Ps/qk=", "CpwLGRao5B02DQLm4uXRuYw0387HaUKchRhn5G4Sb6M=", "Hda6NzHknSHo026dTR7a0kXr+b3Z67YKJS5IBKY5D2o=", "JK4qZ8PVIcEaEbcRKrve4wZHEHuAiGapgIN9DX2k4+A=", "DSDJMQtcFNnvEoZq9aRerjypvhbSAElwZsiy7pZ4HXA=", "DgR8mCH+lNVdQA12OmbExhaZk6vtVDxyhLSjVDABlEU=", "KUdKt5mx4TlI7/QdLOeb+tM10JEQFXB2mIrCB+EMgd0=", "A4mfE50NxLKBvjt0q0xweJt/QeespH6iciog15r7ypM=", "GGZiT3YauN16kcXzevXkdjmVHVrLaxu/O5bKJz9xAp0=", "E8EZ82cY99XwmthUEyWhOs9rNNttnuKvfqBgYSQPMAk=", "DkoQCBWAd0ArEfE8CIkLc5ZDzI6T+kRIe1oVdd2Gf9c=", "DvUF/USsEKJRtnDa/hTKvZranjACIQrJw4dvN95Oetg=", "HTHk4qWXi3SRxD02dHClpdFEW2uBKaW5pv0jhAVyDeU=", "Cpea1UKNSBy2JNnVBFJKlpTKXLRCG10dxq8sAw++rDk=", "D3/M0uyLxu2c42gvOKopHe6pNz9JlXeL92Kt421qsqA=", "JpG5JN+hIwBffAeNm/hwbe/pnCupm9buU7FT6f7Hu4A=", "Agd99lELSGDla5E77zqA28RksORnit1g3qepUXRjIgs=", "Ke4J2K+dJMpJNQzi4KpH0Ao9whuvv6wcm6YcWOKZPow=", "CLKSxmHUJ1BrmgGRZiTzzeMyqs7Z8aSUpzPOpvJb+q0=", "JYNpnOU2p1eyLkcT7fuwUAkshKvHLJCthzk6Hamkz5A=", "Hj8bZgIj1lrYiZlHU3T24l/UFI64EQoLEs/6GWV7C2Y=", "IPPsuzfDSux5ExRVRhJZ5ZsiLw7o4C8xlM9iqa1MNEg=", "DfT1CI5ERPv4fVU7pi29qVaW2LnPYhCxyFUTsXdvvGQ=", "ArNI7/1MnO8Aoc9N1n3WZLL/42GoB8WJolLGO8v8aDM=", "G6HlIvyxU2ds2PIOgiVvAyfAAPqWsbRi/IS1VvJqhsc=", "ApTETfjmjJYUTpZMN7vFdmdk7TVQr/gNvp0/p0QZ/lA=", "AxNxbuxtzYpgLKBAcASY3ATHff4hlHU8WbyBjB0mNqE=", "KH3sdGltZj4jWfaCJd6VU4TZYLuvuQlnQppELhnj7GE=", "JeQvcsa+CUIxG6CXzzZWg9tJYsggT+ySE/D49ywZRr4=", "EraIG5ZlT+F2jCQqzVOZsIY58IGpSJb16m2nC2tHXJE=", "DfwrVFRv0yZ9e+VccWyyQ+8YEY7ZSYyCcESb2UGK/bU=", "J91V/g1cD/Vq1IkPoCnCfF820Ezcc4mauZsocrKO7fA=", "DGCWJxGu8W56LOWfWHRD7ItB743PzLOBiK3L3dMvFz8=", "LtwJ/rJnxrWG5i//4yv18WwotYWYa4ERZoS36LQNQtI=", "Cvg4aFnbJS/ylaGUZtjRAGIskFAhN6oc1MS8yWVtEeI=", "Eh8hg5L3PUwWq+OCECpFnmwICzyk7aUaI+ZRoTpoBVA=", "HqOCc/XVnmUGH4x3XFcf/HXvZ9KUBbXgKRPLMBnVb44=", "Cb0jSQBWmbzArDW2J+L48Iv8OwvzCxRvN3QqwVVhh/4=", "CRxQWx6SRIwRrqIqqsTUT2p/ITL4npG39V+UBGlsFDM=", "CzFvHClonU9JD3/N1eny0lbUQ7oUzaS7eZsFc6kxqZ8=", "IEklGRmo8/Q5gYi4H5nS4tDj9TWc+lW986p1/a3zZ+c=", "H+f562eIEBkIgUFo4+TPeomaEFv55YSvAGQYikqsVb0=", "FY5lebA4gVOwrNYw6pTej22WbVKcLQG56bHGfB7B1XA=", "GZT4LycVOvud4qo/S+BcSyxIfjk9ztyiVmqmt/vDaWs=", "G2JQVT6GKaWopAtWhDLOfb2DyHYD7szI2tVyzOvvbh0=", "AgKWlAp9Ht7Srnn9ePoqwRq7IhC/JFQv6r7nHw0NfJ4=", "JVOUP54P/OnCl80xwp8fpfAYg8yeUE/e16kFAywXDIk=", "HFbrNiiWwvAK0Y+urwTVd/X+tNtOB3llw48ur1974Iw=", "DtiFcgXgaABV3n6CK299YqwPdf72faH/e3c1IIiFz5A=", "ARj5EYWgk1X52MP1VjZ6K+vnnn2VKKjXKlkmgWcarHU=", "KnHmpnq9slp4AQ/m/gog0dhOIcunWtVZN9wYNME68MU=", "AjJ9vAWZfOhXVoDkuJKdTp7SX7kgQnfWAwYZhtvuV+A=", "DgUjXgHyHMPylxw4LRjBTkF4Wl7I1EfNk9EygXkubW4=", "CYr6Lqf/Blsq38SrAPOwRJbB5JDqsmTSNwsQflpJIE4=", "J73be/BuqmNBmtrkQgndJaTjXty4Y7AJvTTMxJBdIEs=", "JwRAa8gG9MyxkIXLnTdxsSq1znqr8GAengaivJiDet4=", "IcdcVGZLn+yGdWqpAnJhl1JE9Cz5HJzAszwqYrdWo+8=", "K+hMHYTBYDjqX5MykGmdqqqBZMXqOaAry93GbPaf6Ow=", "LJcOQdSGSc8BPGdsjGiKwWVWNyDR1fMmKKxbI5SIqW4=", "DhrSZgoulY2qHyZUs6N/7mBUbKAycVBzMHB0LtyAZDU=", "IGDuf993X8fjiaVTdjdMnjXVyHY9WX9CYwTiNvV3uCk=", "HgEWgYyEPthvCdruClga8Q1S3ura13ZW5zbqwI5vDxc=", "ConBSY7yWjg9iGu1hCTmlArDmePlV+nelRppfFSnV2w=", "AwN0PW822SXhCXSDNQ9b0sspfU7JI5IJ9jxRa4SaZ+Y=", "CM9ERG2WhDAjLfF11GK5ybDi4sN+hAZ2TLlsfDRGAY0=", "JBmBHLrrP1UbCpIy7uXVPjdp+89SOVMwdDdfGwB3fxY=", "QjfGImJts3a3dISdu+h2gJCC8bE/WCT0xYNp8n/ntg==", "HltJDHLutgfhFKXLh6hJSxeJN83uNLno6Uc0LBRFRVg=", "BCZTM+WeGl/3SSA8tKXRQVpyhixhOAscJC0PMsoVuXo=", "GJ3q90JYRRrE2mglMr5D0kpcaDKTwf90ht4m012YLoY=", "BOxRaw/UL6U6NJBc/e2q0CGzY5nQPYJjrgjEavPsp28=", "LOHIoAhFqCs6obZkL8mIV4V2zvhhllJebVlcdwGtcA0=", "JHgW/Q00+dOzlpF0eGBclKHAUqbtZjvcNE567paGtrQ=", "xnbb5sSU1WCcRE3mIrz2DPVVCRpQf86GR3AZ2uqYfQ==", "HLOVreUw/CQHqnshSNLfruMPTd8lj8FJzOPFzegKhdU=", "GQ4UlOPP2to7nmXY/jwex2lUDaAj+ewuViWfalaJCw4=", "GPKUGyM1E4M2w1GnkjQyIqhF7goupaO5FgwdbZsin+I=", "FOojzosjEuB99X4K7OHaXSwOAfdX5qXIarXkA2iFRNw=", "KBitEAX077XVVDYaKfheoQlA1ucfOOg2m+/zVjpmC74=", "I846mlIpFaKBeTl3tJBUw31l+QuEHgypCBe6tJ1520o=", "BsLtK+h2MJqbO0Ts43scQjgpJ90EJJZYo9QePzjV4CI=", "GLZ0D3LXfrz2QrlFyi7WyKmFOjdJ1/q2BR5Mo29E/EI=", "H+rLnrKmh4BhN00Gmp2uMoNp7mPnWhuZzbBqSLDZl2o=", "GkTuRWWpZ2RzAMde0rJUPY1F1Ud/1gajVtEHO9E4MdI=", "BB87O1sQUMFr89Yth9XSc7Bn2khGeRAyMe1loY2p/kg=", "H9lYzE/gopC9D7+4uKUTrLWJjWO8DX5YW30IHEnrVlk=", "F12roHxe2/hPCch6jDTdczJZQ6SPwSy4OdykdRJWHS4=", "Cc8KTm4x3CTf1aWieneDPkd9Wy2Sz/X8XMrZUoxDung=", "EtSUZb1BIMv3jlo0FNRMZTC8ljvXAcVNTGQYps6+gLE=", "EBsvK2dYBNOyayvR4HxzZa8L/C7fAQkW7vs54oIV1Eo=", "EU/GX6ugmll0ngtfERkweDUpoGOEViFiMst+WjOXNqo=", "Hf+ZtSeZr8gCwrv5tn3QRNPLUQF9xPiDWN3Wc2bTqfU=", "KQ9ElqUt1N2lntzNcyUDi73AVUrTqaC+eTHJEGKmcCc=", "CR6HBGY8UWw7lnIdIDPZhQifuZLcpIyN3Ll9fRXH4Yg=", "Lc4iWZ3gQZagFp/CEdD5yGkmQ6oJco6t9tULtTTA4yM=", "Kaf/ByDhcMDmfv3nJ5Uyj+zvZtqtpfDiyoWKjGE1/Ug="], ["FEhhRZjgD5jnrn3qRfvYO9loZT74OQzeLoa3Bq1AxlE=", "CreykTiOXJ5DwNwfWR+4Ps22UCLhtwr0O4p7QMHf98M=", "K3y7IXiW9SyajAiOZUryHoTN51SjzvWxXE1UZmEtat8=", "K8aw3b4dcBtlcEKL3Byhvw2ln/O7u5X8K8ccDG5nplw=", "EjpVoxmAOE89ILLOy8RO1gw4wR99IOknHvq5qQXu/Tw=", "A3UBzIydyBkwmnafTfCY5YiwGFi8jrfieeKIO+n7jFM=", "Fd4jFjeo6jRzwkmeG+4yDBfGoKT0ipsorRRE1TUd2zY=", "HJsdo2mJIG3pFzsN37U5vfB/id8FXvwcxIkALaP0tTQ=", "Hyjsn9yzhUyzJ+Pi/jlYVQw3/ReRmKQc8goaTIEGVMs=", "KgQY4S3SbnlsCRvB+x5Q+CkCY7PID2gDbmWTwtsvg8Y=", "Dfa8mQ3WiPq8H4pfj6Aqaob3o6nuRS9WhNEj6sFQeJA=", "JM2ZqzAe504jguI4vplB2YdvMg6ZQEgWR/y/vKfraow=", "EDbuxrOrZZpQwirjs1clLmRkHOCC5cCEv2Gk5hGYrIU=", "IezhAwv1rVdZ81upavk22Cpkq+T5uy9QwopIggkoYRg=", "Ll2QWeYjA9jRf7UJpgr9xNjuHZE3+P/w0MbpE1qvZss=", "JZHYjBFYC3XE7fRNumujHGlvZ4niLT+mO7ruccaYaFc=", "HmRzRcEIAFp+L4cPARQiI7siq0SgPHGYhSqvbXZcO90=", "EH4nnXEOZTWO9E+WbllNK6BOPhXjfKWqURetxxtEHwk=", "Fzspgpit9lmz9pWgL1Fhfsyn4iH2eDdUBfIEBeN3pEw=", "EiigzRBZRocKzHWGlp5+Oz6NT19G1FCxRpggKtueoc4=", "B3jLRdmMDsaISb8gPcexUYQJKMydf0BnC/fUizxmHWg=", "Byp/8ScG+js0ADCP6zPvPd6uuaVni9Shff8Jb6menmQ=", "KwmXsBFlwodFA9wS/nfWq1ikTFg7k5w10IBbtVXNCfM=", "CAgFEpJZr1Di5fLY773jWBMtocGfy32vSJhUkcnSh7U=", "FD5OHyr03vGxkDig1qyWBuM/QHBHmfCJC0q6Cy1suSM=", "HBa0R98KMCbVuRI6uvAtaQdsWRUwUmYN8je1IhSF2j0=", "IhJ2NWShfFuBZwPl5Sp9sMW/tmj+LkJMslE2FCaDC5I=", "AW3TCkjZb3bpN49lvDQXgel8+5SvWlcJG/NBNCwNem4=", "DvrkpWlRRlf2fhnKEcAeJCbvD6or7Ujv4HEdM46juGs=", "KB3NUy3EUL5VlTbiUuAVnuIdW5H7+XJfSlfdhw2A53k=", "D+TRGos/JNxVm0o3EY8Vq4Pa1adN+u1BY36ZSoEzP5U=", "GFeTjgJ5CBkygnipEyIjRGQPIAxRQQRWCJdov86lYaU=", "IAfQQ938VP2Zn29LY9TKZsXxJpUTiM3bHc3jKUQVVnU=", "I95muSfVdnksaaLG598g0/x0VhT1ICeAvCtML7J+njk=", "K9/L7+NT+i/+edLv1aUcmBNFot5A71x2S/kNqG/tz+M=", "Js/8DlmEkzMT5PBt6tB5Q4gNpmkp063td+D6f5lCRP4=", "IcUyrQ1QZ0vjlH/y1Ot0Tq26ooEvwPwlpBy4TA/T77g=", "JG7PLuRTGGLMWi14Qv48eAuGjvRF9wyaHiv/RhScxG0=", "A5ezmAo876D9xzOcT5UAs2Q8VKPuejlgAwR0Gi53LpA=", "FESQlXZ3Y2qae/ErGsma+VXqcJmbL5ciEVUqx1Ysau8=", "SpZml3eTjNlkP/JX1fVsX08eta3qSaZ4zsPqFwZ/HQ==", "JCOlCHFCmoxIuhPk35OOYoDXFbOa9DRJ/wYDDjRuPis=", "HKUGQOj0LAPCiAFOjvErgBTDxApi/FhW7ptjMUbsYCo=", "CoM1wvp2LQm9oet+IrEcwRffeIwNAj1tiUdydoGnqes=", "HFevemeW7Te9lkwzzRvJyJdHuiHfYQAgn8Pfn3B/HNo=", "CPCtWmwB8L3n0ajn0mhIF59e4x1tWbuOLHAeN6TPuyI=", "BQx4IcblProYWmJ4/gSlwfLyhkG9yEPJ+rKsiX6KJGY=", "C8XURcXfUvubS51pVLx1dj1TsMIImDLr3KlgVnn2jQ4=", "EKayoHxHLCoy6dwfBQH72lyfBbhh0ceKXP81lBl7c9Y=", "GiREizRCR5x6yBkb+vxn2cdeQCALMY98ctDC2Qiz3bM=", "BeIwx7kdwGeALGyf6tUIl8AzeTieKn3vNw70wo5Wcb4=", "HurWhdnzV39+Nk2kf3TY7iz2zuMWYAVWFdjylKMClKw=", "BKIuqhB5G1mxvYrZYm33QnVTXr6jAfj5EsUh7ynFBLE=", "Bjd7YGFbe5qfDrInZ4bQKMyoL7zn2xzCf1C4SGyIBto=", "x2SV2keLvf1iP8rC87CNZBxMZUc4+tZ7npDqBxVxTw==", "JQrWuU4b0GgXz9JCFCOpXhi6hysnbBmeFqj8ZQxanWE=", "Gy4OZhRvtbEiHIeChqCYPpA+apU5D1fSmKUNzm9Sq0c=", "GMqJCq6u+Xx8F8qyw1GPzPEYC4+9E0+8vOOPeG8sDgM=", "G1w9uU2eDNRVccG4gIQYbrWJMLzs6yyPd1sS83lhvqA=", "BilMcmhqabYGk0mnOoFULLFqatcTN7fH/1pd/gaiYK4=", "LBiiWowsrhebGmQ+ERWej1ydpEiq7jpE3ki+Psp7slM=", "D8RaK5vW9BkBuqevrUDMKNRHnDBNEBBnw1Z/5EkzLrA=", "A3i8O1oyz1ygiCJ8W28KVm4LdXM8cEgEYZ5ql5vB028=", "AlU3U0a+q9CSv7/XJ4tDe908GL2VHX9CIM3FATYR/Z8=", "BSSFOiqXF69kUA/sg2wTgH5ZeL4yiGBHvTaDpaZbaFk=", "GzmYVTFU/CbOiPBIgWDCROHexki5MMEy0HfLk5l69eo=", "EgdLTYPpL44KuSQprrUnAUAzipfujlx08rWZ2Vd/Jf8=", "GkCx4BoJbqfrznTAJ1NrxYd4tF3O+3zAViVt0HMmpmI=", "D1IovAlLnuwZZ9d4orfWtN5Y7ejg+XQWXTerbyM2vuQ=", "JzFLlh0vlpcJd6M/L6xoI8BDIH5LakigVTfqeNd5wW8=", "Knj1vfmK+h2m3UWrNguHdwPh+fDnl/7MpFMn7kq0ZZU=", "LP3lnKLwGif85VTCZbwj/aMt3Z3/PdCi8d/d0HZMILQ=", "AZJafRys7lYAEPhD71/J57ApRmfYcdSeNSOoj+CvVqo=", "GZ/0u6+U7jh1YPu+w5XbGvnu2fUN1g3Dyiy5LpJFImM=", "Jvf5HZWc2ukZB7KPsvFJ28J18T1Vd22lGoggD458rwk=", "JM3dZBt8o7xsTSV4MqWuXpISbDvS6fBeAScxEU1i0MI=", "GFR+31C9d7JlPCpTKEyZnc5dxp3WE4BNEKDulrylVzg=", "KycXjspLeYunKy5rVmvf7MsqHmDYUE5MjskZLyuuuw==", "MCDriK56z9Y0Jwnz075FzywUa83JBu5XlSc65LbnAEo=", "VLgabTsfACIwxM1iP3ew+27so6/vr+aUVE7u7BoXDw==", "BNHgPJNRC6b7Sb2atRBj07FeSOLtRJvaJ2XQMGX2z/w=", "LKaijmuYuMgiCrwJGi+v6G8nHu8dk4ZLeyu1oWDdjZk=", "KlhmAGeGUfFEvx5U3j1vj9UZ2q9KStmh8yIz6J+dZzM=", "CpSp+4VKPFNBHXNs5Y3IIZayzRMUSiQKb+FzUIoiHZE=", "LTNsZHy7VHjjpy8g9B0TXTX5b73ZsrKITmsj7CAeR/0=", "A9vj+JlI+fRxXEkaSD379vb53PtYU8XTztcH8AUKIYo=", "IkZuwVM4EUw7MWstmGyMDT0UgA2CJ1pC9Haw/9+UNbQ=", "HC1sWxgvOU6NNpmekanu532nH1SQlh+3g6T45vhC5oc=", "BPxWUVz4MkfjcOSICdO9JFq7UmONhrSKHLdDFn2yKU0=", "Gq68kGF+WqS0+QNvzFCS2n7c6cEQ4+rwDX/Tmxeq7Sc=", "AV99rZKMs05oWKLesvnZLEUqU1oJbF1xP3MZwMV35BM=", "BgAoMHIhMj9G61Z3PFMg/aotcSOHW0IBduNLPuB56XI=", "FXsojOybU1bmA3O/pD5nUR4qfmJJNlDI842Bn8NOWdA=", "CI2+iPP+j9y+vDTOPwDwf9pBHXgOz/HaV2YK6/0S6/w=", "CfE8iSE8gtW/04+Pi8/kb99APSjm00nsAXbjffnJEv4=", "Bb/61TcirGxCI2EkwyAGaav/ptySP75RQcjkFXzTF6M=", "KQp4KaTO8uJdL28oQhRjNEv95SID1MynNlc1N68zQh4=", "CecgnaxxUWl74X0+OsUrDuZGeSm4eNgUrkzCc0s5NI8=", "B2KfW3zT3VNt9qhmoHH7XfVjUvr9Dwl3Ec0WZ+o0QDk=", "EWQd4K9dAztELc4fgzTq/UlZ8SIwTqbCF3w3fVXq4EU=", "ECHoBtg95Mvss8FlDHYXdOg8rk7Luw3xMxAVDLraiPQ=", "BK434ednbh089kKF9wQTXIzWQPcMiVve3VHe0mD7tp8=", "KkkdKLMg/3e/ciG1n8wlNcfPycDxGl/cXknIN6cfAjk=", "K6fCaVgRjwt1FETo6jUk1F/M79h0RhjmblVnnkK+KcY=", "DGUW9Musi48pvpQGxsMJ3zTi2n2TETPko08p7GKD6bM=", "KZGsx9tesxWfh2bEnWkgeQJbSApwZWQ17nDFaH2q6ww=", "KddgW0E83dGSd5tzJeGvuOUu0+l+kq33AcenDBGMZI0=", "JQe9N4j1fO/udU0/9akpgNzwYq5KP62T7ABZ6y/lRew="], ["IZdwP860y/B8bb9GxK2T59FOVU22bQkQL/hIJHQ/5Oc=", "EyLw//x+SFS9i1/CPnEGtR9ZvVBh2LVlrKL9Pv5RL3k=", "GeQU+AOAqi0iITMRjDN9gqjFiUwviIYe5G9Ej6nWE1k=", "IiQRmaTfnLfWUknZViytbGXxZGDnmnk5y/3W17kgnZo=", "AwEGFzU4Tfzs+aMRwireMntRx4shFhX0HHf22F6KQbY=", "Ip4dhsHygQ9KJjO3tLW7YbfcXRmslf2NN5VI/ytoUO4=", "DjHc+cUyCagX7rKS6YlyfD9Wv/ZYg6/l/cKKw9++pnU=", "Bo+Re7GwgF5bWIi2qXgkOVuu0ZW12gtxxCq9CRwu9Us=", "HQv7i7kKwjQALYN3FWEyl4AqW7y2mqLajPq9gy9S17I=", "DWfBgvv0HBjVr8tIviAjdBPwKmTb8J6vcfI6FPueIQM=", "MFiQnLEDVXcGMEubtk2UrqTlBNj9qLgjE5lveWKISIY=", "BNBqgBluEOZkrf79B10MygSWHuion0/W1gHuubYMjbs=", "CrBi+NS17Q7CG9tC6z/LCoj6E6/K5FI9I4ZFUihAe1Y=", "FzgHVHkq1fgZXjJ6WmPNdXDNGZS9ahMOAcH6Ghc9RjA=", "LU83gO70/5mskW9LEt1XVhPLliG8X6CYDtmk7Iqt5Ww=", "KrvvSBs2jKlx502uBGkUOfhFwQ0dV4lCabJ1wZaq+e4=", "DyQyT4LWgjHdndb4wF9S2OrLmuAcyx87MCKCIjd9DlM=", "JnYXMX9RRmVCle9gK5ElDbAQtF9HJM5+xUiEspxARZc=", "AVf54vc3SYghuwGrEAHXFessM229/Lhnvs8KK7ZJDAY=", "Dae+wMuY0zelLN8NZuipfyQilnE0aEilUurBTIowxwI=", "FfyCDvUzAtynCfPuSAuhNxyRreefn1h/x4eNcxwFltE=", "CEVxWt/KNcPoBXwPzUzmphKNDoEX2I9VHT7GWH0PQpY=", "BCL3ROK3NglryHdaOQaJOmTNqHSqRFfStEKpp3GVbQ8=", "FfQhVQv2Y51Gq1d5/Sax4RYY4El+BcyFxgiwD68zgqE=", "BPF8rSug72+GAuk/W5iNXzV+Ya5fPsNQZvy00ae3IMg=", "FzLvVmDYSuUMoJwCHrDXfx+yoAzHkFskeViMScSIZz8=", "KbElAfp54IvCUlmYX3MM3OniQ0GS7IJuD0udVovTUbI=", "IHyABqp4/ECoTbQK2CFC0PYbKN7fEOIgHYFc9PYnRZA=", "CiVwTOTLdKlNe9y9tfomir1YnYj+RbLyyC+QMmzQSag=", "ESEfOnGvMKABAcQj6kCpWFqe7HVodyXX7iifQo9A77I=", "DgHou/XuYRRxOAzou4w0uTKsdulvqry3rSC+lhh8L6c=", "HIlKFDBRPfNVI+IuT+n0EKQ96R2sc64zjHcv7x+3Q2M=", "K+40k5LfoLW0oI7ljvVPAC4GqyaDT5SEPUj/DO1SbVw=", "hKYMHXCIfZ8tI6jHcTMygp60HPMYEUn7Ijt6v/TX8A==", "I6RQbJDAfzrhdqDiv2f1f4jUWJjJe83ryKgmOrYCx8U=", "GrZolqHflcAgi5kOLGNHBzlKERDLMUu4LgouK0lYruc=", "LGuEKqvrhO3knlWdjuplgpP/S7qTJbWh1MtknTF/RhY=", "FjIa9jhxMowriPRt9DK+mqFLAIuT+FzZcd2YbcFtLjU=", "E9ZHII09vMnfENHuNbWY5sjthWCPgbppUwiOe8bbc+w=", "Acau2p4Ppp9RQ+byLnR7fnTmkrklTVXGG4kEcMvX8Gs=", "KH10pfoDpO1lvUp8ba8DNBj0dMfdm5V78rF5ZcrAJLE=", "J6Qye+sLPgzCGYBbPwXoVL7c2ht8k/EWkf/Wu3al0Ok=", "JxoDoAC/QS5/z+iRi6ponGaCQXgD9bMC8a4waVyOZ3A=", "GkQ2IA5NC+ZdLw9AABV8lX/uUV5ZHItUvNRsAtWZI18=", "G86TlKXa0KTO41uOmbSzwM7gWLiuT94wHDFFpaepTHY=", "KxtP8rwYa33anD4F3Uky845qfASwrwg5RBpZchJdyQI=", "E8h9Dkv6STzCoZexydtJQml5rf7kcUBI2GXU9ulfaZs=", "DoYUltG1TjUwqg3GTGaD7A0BpOPRxp1Q9NZyC5gczWI=", "DbY71G4GvK/7ywPl3T+qiPJqCqpygZjF0JpIP8QZcQA=", "L4/KOkS/nqmUUuGgVYhq98lYULcWIirYnwIZBU1F24c=", "Bbe7PlpOKUY5XR1t3VQb2cFmz6GVbRYXE+fjUPWUfXM=", "IOTmxHpovjF1/PWno/i/ezshmCA7RVLtYguVk7ZuVIM=", "FUoqAjecdpW6R4PhXRChR1YO4rTQOgSguQHa3nLfSGI=", "FW8CyrX7Dn5voMdDv9ZHFuFeXlDhJ3SAWxx03qicU0U=", "HSWCGFVtAVLwo74EKxvRRndKYW/8fnMT6VGbUEExiRI=", "Fgpdo1XUaUEuVTWAT5nfuPqDnXziy3r6UMH9A2IZ9Og=", "FpPAyWuV9wN/r2oYKJgUxoI3hw7clKcsiD6yx1HV7EM=", "Kw3w9GP2nKIGrVxKEV0aaoPV4Kwyi9Ro81gmqWjVcIs=", "GcrSPBSpvtDhWfJQvshlXAcUm7oEFh/gAvdpVMoZK2A=", "JYV+rmvjB7ZTw2pAkKOWPWCEJBDgTFci3+3ij6ZF9U4=", "KayXFJVbepyU55We++uhfASDmte7q9xkO5hArkMVX3I=", "LmN9uth23VKnKE2yZlk6qFsgIL80CAJiXnT0Wizfli0=", "BGjYl3n63tvbTwCThYETxQYDIaqvCCpT1E/HTGXn7oQ=", "CRTO/VGigi78+GKdV+tbbscZWpAId2LsiBTxS95kdSI=", "EgqdPLyli5F/TmERfH/iGQum0jjON0lJd4xAptF2cH0=", "HPHHWhssoJrGVSFcswizns75bXRuy8NLN1g72OBIDV4=", "BRHK3C1DF2mpU9DSNVzdPYwT3KemxbGQBby/PFvPd3A=", "HiqsBj9DA+JKKkSxvtVoikMnk1bceKdy5Nz60FYuXdE=", "Fyo5bUHPsrEkHglqpB86R4gwPYgk1UloceA8uVkPibo=", "C94GgjfMQarbescY1Ma5Fst/Nfs5nrslFTB+YASWni4=", "FSLR+PDLkhSz9mAtn4Z70q4HqPp3rvvDFTr001DZM+4=", "FX1WBTrKLEzTD3ujTl1BuKY2lh73jB3qF1nc6szR7Wk=", "EK/4wPovJfWKKZ4ixzLxuQFhb25LxvY695u5PUX8GI4=", "CpVX03+7Nc4Eby3z2L2c/M7fhe7yVJhD2n8sLjbSveQ=", "B1Ap2DUaSUkXATbeZsF5qNbua1a4lZivGZUo146NLFk=", "KqdnyRE5hpayMC/hWtM+81xsl2GOZy+DeqT9QpMDVc8=", "AU2Zx0F6Mp/2LTKChCHhuKAx0wJCsoXIak9jeV43ZiM=", "GG4beAiUZ0eDEMNeyp0gWMCou44upcMk8TFOR4oSiU4=", "LKkwbvYt+xrVgkSsW9cLC8hPhjaPbJvU4V3a7UMumDg=", "F2MNYwdihYVmHqrulDjGcWD36vbQPTymNk1K3aSb3yc=", "IRh8Hf+udDQKSIzfCM4yIiZUSBZ4CvAWCY2MOcfnLjE=", "AdshC5PDIKGLqxdpruYydr2ZrIkDWw2jJ80Gy3CFSso=", "GLtviYBcG9WdjXrRCdXya00YgT9xzzqrom7olnCUBOE=", "CcCmwtecwGAj8/Qxlsm4pgpVcW0sfKCV2Eml1n/2/pg=", "C+a31s/tlSj00a4wbzE4MG6nyBy/kD6biE6rUITcTBY=", "Fvx8gIVSsTYtinOb/fbG2+cLAGEXgPtIGNQk1eAX7Vw=", "DzGpHm23XfkEvmuxT+cnFCnleH+akY0csSitdqyUiDY=", "IwpmziT+3dRfz8tcp+TvsSRhp8CgtnOnOyUpJdMQ1Ig=", "Be03B+etNHiuUIEmy6J0dDz+hoW0YVP22joLS4PqktA=", "BGXDcNtAuPFLT275E1UMEbyyg5rHB+L+mpwxtDz42Tg=", "hfQriUhzp0UaYP7AU5+f+LLgpJXkPbe5XDp1xXwg7Q==", "Los66TaMnB8VQq5zTNmVhp+BqsZJAvsdNZcCLaCPmTg=", "FhSF1PqGIOb9CbCIFZxOIjFVAZv+nq4o+YcP8ZzP8xQ=", "C25AAznl52wdIA/SeIRZnUc92Y+t6eZIlAgz6jK3VBY=", "Jh7jH61HwNt7wEb3GEN+5Rj+c+ySweIDFV2PKE1EsxA=", "BOEGCJt3bQGihLhK3N26S/DuVsLIWsWEtNk49FAjJS4=", "BLFOifQih97jYUKhdxj3YVeJyfliO1NK/v/PnH4mRJ8=", "HVWRWyC2BTTx2J8vjElWgSP8tMbZGXNz5UZi59nrg7A=", "vwT1t9F4p37jL+VDvkaOHImqRXovTWaZrqdD+ASUuA==", "G7HzHoh2R8tFuLxb4YXiBukazPhuXOW8GzmvEvhX6j4=", "JvC0IUIS6oAwq6dbLraZ6ErfJLxLhWo1IrgsHtyofp0=", "Gtfhxv6t4mnAdrZyObMW58/BlLA2taU/kgf0V1mcX8o=", "EZR87a2FnwL/tLmegQhRL6MlIkrX4bz4KyjGGomEADU=", "HvTwMw1hRCKO9sw27aDReThMTcGFjJXeEtBw0RxDNIw=", "EDGr67Aha+UGwEplFNRx8YsNwbWpthbIekZbaJzRM20=", "I/l+toD1oTs+jarlcqvirA3ZLqq0cwAvBwjmtghLLfg=", "KJsrouPI9mW5Sk1ztb331mh0aKqoTvf24E/hI2WeQbI=", "DUD3E7MbLQQdPgHiUErxACC/xFvVu95PSxM/Y1NgkLU=", "KSBNc86Es/u+BHx0mX7nmfkpI80W7OHrYnXItxZZ8Uk=", "I80UtQ9BKfpWJj/vvnR15RyF9nzfOKmudjetBK1kTGo=", "FgOIe8fmlWrk/1ufRCOyKTq1K2my7AIay5C7bajcOIM=", "ITfZnCQUXlLq0BKbsiBpDF/49tv/dVyEZwVLZFx0sPk=", "Hz1tE0kJao4FlEQ6SHOG+fUbL8Nm6RCplS1PCz2+xBQ=", "IUjhqrPpyCopfQSvgZHisFzscbDNa4tOB5Bh3QDwGgA=", "F/sHIbM3VAYCirbwSIKiAuaAHLu7ULrcvV12DVnmDFQ=", "BE+K3jNFVM1hB0OquroRluABBudUz/iwiKxponPtB00=", "LhDnTTBnlmH8Oslgt8lny8UAKdLqRjq471VjPMVAUkM=", "HkQDCDJSbOMtVAxc3S3vf5AFCbyAGf7F44hIs1dtuo4=", "LBe9evRj1S0/1+hyPREHg2lWHKPE7OSPEpitq+fIIuA="], ["EjmS3zudqmUTnsE/u1L300jhNDM2hMFZb+sOjYw61ZY=", "L6RvXbqZCc6ZhKAeKvMLVQ3+yXi+krSRGaOVnH9iNwM=", "Idj5TTvZjwtjp6rLF1ssyhOy3YqM9o/DbZSuKUAbLSw=", "GowGxhBG4Pjcajm8V66g0H/X2zTmj3NXnaieEWr4frg=", "KYzXBG9YwMq3dSOlim/f0UAbieeuXu9JlEQtFn960dM=", "DqxzeWZxXfSiCzGraT7ahqB/PoMPykdaZXTWf8Xxn2M=", "Brm3GLs7bUXgy+bV2aLwlqd76wVoIXUNByJirypwoz4=", "C8za1uix/fuoRqlVP8eQWz+W5DXWU+7DlyVl4fu8MCo=", "IcLf4g3FpyFnu6vdlaGMFH+Eg8t8Di5oSh7kAS9L2S4=", "JK1rJ1Wmpu5R2S+jDfJIkyDlCoznEyUEzsow6UgAebA=", "BnpG/ExSxuoQLNN7RHj9vbXnSYd+xDe8t6y/tk5h7Mo=", "GiYjl1ZS1Hb0ucrcS4UhkmiRDHw7LQrhL9R+sWIlfzU=", "Al+M4wRBzobmsh1SyodGPOwpmj71QyINcrwkkf3ATEs=", "Gs3wtI2KR4mps6xf+JYrFumlbIgOIjZoolAYZXg0ql0=", "FNP6fuHNK4vi9C629LlbuLHRVtd/FD+uPoK7jFYQ6nc=", "A6Ik9kcKZPKU+k3WdSTeWLGPcIEuCTwOHAazHXWKET8=", "LIIq6nFAKAfsIdsRoIlmj84ubC0jF03j62lISlMUhSc=", "EwW2bokOl+EdUncaYFCQJrrt0OC9XnlxNCWcdIoomZU=", "Kx6AvF4/VG9LETmed6B4TrfEOcVG6fuibrbHfYnBRRc=", "FWIyaosNVDa9e9Fz0/nmnDvnTceScLT7HoU51YTqwdE=", "CMmsqJtEfnRovx6m2wgDRramgn7/H7gTks3n9hMJELQ=", "E44ALowMWXVQtyrL/JxQlSF1uoXAYbfpc9h9l5R2tUs=", "AxfuQ+b044eWghrS1VhE0BK/xcK5kPpItJHvfGNyvcM=", "G2CDH8EVIdEi2c3G/0XHAF5qFmcX56oWhcsobJ7MmSs=", "LnPTXrqbQ6UQDeF7ulxZ2HH/oqm1IrBkXig6iSWdRG8=", "IqTTy3dQ5fTS8DgSlFePaYvn1ngxFZV5P/bx7j7/LfQ=", "JHG3qWmvKVudQHY0pIahyCzCc1BtianNXIClO0Dhk18=", "AZe3Ph15KhBkUqw9Mf0CteFhf1RC/ia+9f/9t+FJd1Q=", "Cy33M7NUHHiDYqXev4GKCHvZyanTnB/PJWStOYC66Pg=", "HMZuooWzwJy0ZTKDucbuZrfno8riDNUDFdr+OpIROiw=", "AlthUrqevoNsL1Z50PiRswuWrj4GphMtovb20hL8S1I=", "GoiaoWRhNwpOdepr9/