﻿var digestBits = null, count = null, state = null, buffer = null, transformBuffer = null, maxLineLength = 64, licResults = null, hexSentinel = "?HX?", hexEndSentinel = "?H", prng, dcgs, dcgi, _key = "TYAEE-HWEBZ-SUIZZ-IXJUF-HWKAA-PMNGV-KNUID-WBZQT-RASRA-GIJEC-AUMZM-NYSBM", base64code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", base64sent = "?b64", base64esent = "?64b", base64addsent = !0, keySizeInBits = 256, blockSizeInBits = 128, roundsArray = [, , , , [, , , , 10, , 12, , 14], , [, , , , 12, , 12, , 14], , [, , , , 14, , 14, , 14]], shiftOffsets = [, , , , [,
1, 2, 3], , [, 1, 2, 3], , [, 1, 3, 4]], Rcon = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145], SBox = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251,
67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140,
161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22], SBoxInverse = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175,
189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125];
"undefined" == typeof InoEncryptDecrypt && (InoEncryptDecrypt = { __namespace: !0 }); InoEncryptDecrypt = {};
InoEncryptDecrypt = {
    EncryptDecrypt: {
        decryptKey: function (b) {
            var c = null; try {
                if (null == b) { licResults.Message = "Please specify a key with which to decrypt the message."; licResults.isValidLic = !1; return } digestBits = new InoEncryptDecrypt.EncryptDecrypt.array(16); state = new InoEncryptDecrypt.EncryptDecrypt.array(4); count = new InoEncryptDecrypt.EncryptDecrypt.array(2); count[0] = 0; count[1] = 0; buffer = new InoEncryptDecrypt.EncryptDecrypt.array(64); transformBuffer = new InoEncryptDecrypt.EncryptDecrypt.array(16); dcgi = dcgs =
                null; c = []; kt = null; licResults = {}; InoEncryptDecrypt.EncryptDecrypt.setKey(); var c = InoEncryptDecrypt.EncryptDecrypt.disarm_codegroup(b), a = InoEncryptDecrypt.EncryptDecrypt.rijndaelDecrypt(c, key, "CBC"), d = a.slice(0, 20), a = a.slice(20); if (null != a) { var e = d[16] << 24 | d[17] << 16 | d[18] << 8 | d[19]; if (0 > e || e > a.length) licResults.Message = "Message (length " + a.length + ") truncated.  " + e + " characters expected.", licResults.isValidLic = !1, e = a.length } var f; b = ""; InoEncryptDecrypt.EncryptDecrypt.md5_init(); for (f = 0; f < e; f++) b += String.fromCharCode(a[f]),
                InoEncryptDecrypt.EncryptDecrypt.md5_update(a[f]); InoEncryptDecrypt.EncryptDecrypt.md5_finish(); for (f = 0; f < digestBits.length; f++) if (digestBits[f] != d[f]) { licResults.Message = "Message corrupted.  Checksum of decrypted message does not match."; licResults.isValidLic = !1; break } licResults.DecryptedValue = InoEncryptDecrypt.EncryptDecrypt.decode_utf8(b)
            } catch (g) { throw Error(g); } return licResults
        }, rijndaelDecrypt: function (b, c, a) {
            var d, e = blockSizeInBits / 8, f = [], g, h; try {
                if (!b || !c || "string" == typeof b || 8 * c.length !=
                keySizeInBits) return; a || (a = "ECB"); d = InoEncryptDecrypt.EncryptDecrypt.keyExpansion(c); for (h = b.length / e - 1; 0 < h; h--) if (g = InoEncryptDecrypt.EncryptDecrypt.decrypt(b.slice(h * e, (h + 1) * e), d), "CBC" == a) for (c = 0; c < e; c++) f[(h - 1) * e + c] = g[c] ^ b[(h - 1) * e + c]; else f = g.concat(f); "ECB" == a && (f = InoEncryptDecrypt.EncryptDecrypt.decrypt(b.slice(0, e), d).concat(f))
            } catch (k) { throw Error("rijndaelDecrypt " + k); } return f
        }, decrypt: function (b, c) {
            var a; if (b && 8 * b.length == blockSizeInBits && c) {
                b = InoEncryptDecrypt.EncryptDecrypt.packBytes(b);
                InoEncryptDecrypt.EncryptDecrypt.InverseFinalRound(b, c.slice(Nb * Nr)); for (a = Nr - 1; 0 < a; a--) InoEncryptDecrypt.EncryptDecrypt.InverseRound(b, c.slice(Nb * a, Nb * (a + 1))); InoEncryptDecrypt.EncryptDecrypt.addRoundKey(b, c); return InoEncryptDecrypt.EncryptDecrypt.unpackBytes(b)
            }
        }, InverseFinalRound: function (b, c) { InoEncryptDecrypt.EncryptDecrypt.addRoundKey(b, c); InoEncryptDecrypt.EncryptDecrypt.shiftRow(b, "decrypt"); InoEncryptDecrypt.EncryptDecrypt.byteSub(b, "decrypt") }, Round: function (b, c) {
            InoEncryptDecrypt.EncryptDecrypt.byteSub(b,
            "encrypt"); InoEncryptDecrypt.EncryptDecrypt.shiftRow(b, "encrypt"); InoEncryptDecrypt.EncryptDecrypt.mixColumn(b, "encrypt"); InoEncryptDecrypt.EncryptDecrypt.addRoundKey(b, c)
        }, InverseRound: function (b, c) { InoEncryptDecrypt.EncryptDecrypt.addRoundKey(b, c); InoEncryptDecrypt.EncryptDecrypt.mixColumn(b, "decrypt"); InoEncryptDecrypt.EncryptDecrypt.shiftRow(b, "decrypt"); InoEncryptDecrypt.EncryptDecrypt.byteSub(b, "decrypt") }, FinalRound: function (b, c) {
            InoEncryptDecrypt.EncryptDecrypt.byteSub(b, "encrypt"); InoEncryptDecrypt.EncryptDecrypt.shiftRow(b,
            "encrypt"); InoEncryptDecrypt.EncryptDecrypt.addRoundKey(b, c)
        }, InverseFinalRound: function (b, c) { InoEncryptDecrypt.EncryptDecrypt.addRoundKey(b, c); InoEncryptDecrypt.EncryptDecrypt.shiftRow(b, "decrypt"); InoEncryptDecrypt.EncryptDecrypt.byteSub(b, "decrypt") }, addRoundKey: function (b, c) { for (var a = 0; a < Nb; a++) b[0][a] ^= c[a] & 255, b[1][a] ^= c[a] >> 8 & 255, b[2][a] ^= c[a] >> 16 & 255, b[3][a] ^= c[a] >> 24 & 255 }, mixColumn: function (b, c) {
            for (var a = [], d = 0; d < Nb; d++) {
                for (var e = 0; 4 > e; e++) a[e] = "encrypt" == c ? InoEncryptDecrypt.EncryptDecrypt.mult_GF256(b[e][d],
                2) ^ InoEncryptDecrypt.EncryptDecrypt.mult_GF256(b[(e + 1) % 4][d], 3) ^ b[(e + 2) % 4][d] ^ b[(e + 3) % 4][d] : InoEncryptDecrypt.EncryptDecrypt.mult_GF256(b[e][d], 14) ^ InoEncryptDecrypt.EncryptDecrypt.mult_GF256(b[(e + 1) % 4][d], 11) ^ InoEncryptDecrypt.EncryptDecrypt.mult_GF256(b[(e + 2) % 4][d], 13) ^ InoEncryptDecrypt.EncryptDecrypt.mult_GF256(b[(e + 3) % 4][d], 9); for (e = 0; 4 > e; e++) b[e][d] = a[e]
            }
        }, xtime: function (b) { b <<= 1; return b & 256 ? b ^ 283 : b }, mult_GF256: function (b, c) {
            var a, d = 0; for (a = 1; 256 > a; a *= 2, c = InoEncryptDecrypt.EncryptDecrypt.xtime(c)) b &
            a && (d ^= c); return d
        }, byteSub: function (b, c) { var a; a = "encrypt" == c ? SBox : SBoxInverse; for (var d = 0; 4 > d; d++) for (var e = 0; e < Nb; e++) b[d][e] = a[b[d][e]] }, shiftRow: function (b, c) { for (var a = 1; 4 > a; a++) b[a] = "encrypt" == c ? InoEncryptDecrypt.EncryptDecrypt.cyclicShiftLeft(b[a], shiftOffsets[Nb][a]) : InoEncryptDecrypt.EncryptDecrypt.cyclicShiftLeft(b[a], Nb - shiftOffsets[Nb][a]) }, unpackBytes: function (b) { for (var c = [], a = 0; a < b[0].length; a++) c[c.length] = b[0][a], c[c.length] = b[1][a], c[c.length] = b[2][a], c[c.length] = b[3][a]; return c },
        cyclicShiftLeft: function (b, c) { var a = b.slice(0, c); return b = b.slice(c).concat(a) }, keyExpansion: function (b) { var c = []; Nk = keySizeInBits / 32; Nb = blockSizeInBits / 32; Nr = roundsArray[Nk][Nb]; for (var a = 0; a < Nk; a++) c[a] = b[4 * a] | b[4 * a + 1] << 8 | b[4 * a + 2] << 16 | b[4 * a + 3] << 24; for (a = Nk; a < Nb * (Nr + 1) ; a++) b = c[a - 1], 0 == a % Nk ? b = (SBox[b >> 8 & 255] | SBox[b >> 16 & 255] << 8 | SBox[b >> 24 & 255] << 16 | SBox[b & 255] << 24) ^ Rcon[Math.floor(a / Nk) - 1] : 6 < Nk && 4 == a % Nk && (b = SBox[b >> 24 & 255] << 24 | SBox[b >> 16 & 255] << 16 | SBox[b >> 8 & 255] << 8 | SBox[b & 255]), c[a] = c[a - Nk] ^ b; return c },
        disarm_codegroup: function (b) {
            var c = [], a = 0, d, e = 0, f; dcgs = b; dcgi = 0; this.next = InoEncryptDecrypt.EncryptDecrypt.AESprng_next; this.nextbits = InoEncryptDecrypt.EncryptDecrypt.AESprng_nextbits; this.nextInt = InoEncryptDecrypt.EncryptDecrypt.AESprng_nextInt; for (this.round = InoEncryptDecrypt.EncryptDecrypt.AESprng_round; 5 > a;) if (f = InoEncryptDecrypt.EncryptDecrypt.disarm_cg_insig(), "Z" == f) a++; else if ("" == f) { a = 0; break } else a = 0; if (0 == a) return licResults.Message = "No codegroup starting symbol found in message.", ""; b =
            new InoEncryptDecrypt.EncryptDecrypt.LEcuyer(195948557); for (a = 0; 2 > a && (f = InoEncryptDecrypt.EncryptDecrypt.disarm_cg_insig(), "Y" != f && "" != f) ;) if ("Z" != f) { var g = b.nextInt(23), h = f.charCodeAt(0) - 65, h = (h + (24 - g)) % 24; 0 == a ? (d = h << 4, a++) : (d |= h, c[e++] = d, a = 0) } delete b; if (0 != a) licResults.Message = "Codegroup data truncated.  Attempting decoding with data received."; else if ("Y" == f) { for (a = 1; 5 > a;) { f = InoEncryptDecrypt.EncryptDecrypt.disarm_cg_insig(); if ("Y" != f) break; a++ } 5 != a && (licResults.Message = "Codegroup end group incomplete.  Attempting decoding with data received.") } else licResults.Message =
            "Codegroup end group missing.  Attempting decoding with data received."; return c
        }, LEcuyer: function (b) { this.shuffle = Array(32); this.gen1 = this.gen2 = b & 2147483647; for (b = 0; 19 > b; b++) this.gen1 = InoEncryptDecrypt.EncryptDecrypt.uGen(this.gen1, 40014, 53668, 12211, 2147483563); for (b = 0; 32 > b; b++) this.gen1 = InoEncryptDecrypt.EncryptDecrypt.uGen(this.gen1, 40014, 53668, 12211, 2147483563), this.shuffle[31 - b] = this.gen1; this.state = this.shuffle[0]; this.next = InoEncryptDecrypt.EncryptDecrypt.LEnext; this.nextInt = InoEncryptDecrypt.EncryptDecrypt.LEnint },
        uGen: function (b, c, a, d, e) { var f; f = Math.floor(b / a); f = c * (b - f * a) - f * d; return Math.round(0 > f ? f + e : f) }, LEnext: function () { var b; this.gen1 = InoEncryptDecrypt.EncryptDecrypt.uGen(this.gen1, 40014, 53668, 12211, 2147483563); this.gen2 = InoEncryptDecrypt.EncryptDecrypt.uGen(this.gen2, 40692, 52774, 3791, 2147483399); b = Math.floor(this.state / 67108862); this.state = Math.round((this.shuffle[b] + this.gen2) % 2147483563); this.shuffle[b] = this.gen1; return this.state }, LEnint: function (b) {
            for (var c = 1; b >= c;) c <<= 1; for (c--; ;) {
                var a = this.next() &
                c; if (a <= b) return a
            }
        }, AESprng_round: function () { bsb = blockSizeInBits; blockSizeInBits = 256; this.key = InoEncryptDecrypt.EncryptDecrypt.rijndaelEncrypt(this.itext, this.key, "ECB"); this.nbytes = 32; blockSizeInBits = bsb }, AESprng_next: function () { 0 >= this.nbytes && this.round(); return this.key[--this.nbytes] }, AESprng_nextbits: function (b) { var c, a = 0, d = Math.floor((b + 7) / 8); for (c = 0; c < d; c++) a = a << 8 | this.next(); return a & (1 << b) - 1 }, AESprng_nextInt: function (b) {
            for (var c = 1, a = 0; b >= c;) c <<= 1, a++; for (c--; ;) {
                var d = this.nextbits(a) &
                c; if (d <= b) return d
            }
        }, rijndaelEncrypt: function (b, c, a) { var d, e, f = blockSizeInBits / 8, g; if (b && c && 8 * c.length == keySizeInBits) { "CBC" == a ? g = getRandomBytes(f) : (a = "ECB", g = []); b = InoEncryptDecrypt.EncryptDecrypt.encrypt.formatPlaintext(b); c = InoEncryptDecrypt.EncryptDecrypt.encrypt.keyExpansion(c); for (var h = 0; h < b.length / f; h++) { e = b.slice(h * f, (h + 1) * f); if ("CBC" == a) for (d = 0; d < f; d++) e[d] ^= g[h * f + d]; g = g.concat(InoEncryptDecrypt.EncryptDecrypt.encrypt(e, c)) } return g } }, formatPlaintext: function (b) {
            var c = blockSizeInBits / 8,
            a; if (("object" != typeof b || "number" != typeof b[0]) && ("string" == typeof b || b.indexOf)) for (b = b.split(""), a = 0; a < b.length; a++) b[a] = b[a].charCodeAt(0) & 255; a = b.length % c; 0 < a && (b = b.concat(InoEncryptDecrypt.EncryptDecrypt.getRandomBytes(c - a))); return b
        }, getRandomBytes: function (b) { var c, a = []; for (c = 0; c < b; c++) a[c] = prng.nextInt(255); return a }, disarm_cg_insig: function () { if (void 0 != dcgs) for (; dcgi < dcgs.length;) { var b = dcgs.charAt(dcgi++).toUpperCase(); if ("A" <= b && "Z" >= b) return b } return "" }, setKey: function () {
            var b = InoEncryptDecrypt.EncryptDecrypt.encode_utf8(_key),
            c, a; 1 == b.length && (b += b); InoEncryptDecrypt.EncryptDecrypt.md5_init(); for (c = 0; c < b.length; c += 2) InoEncryptDecrypt.EncryptDecrypt.md5_update(b.charCodeAt(c)); InoEncryptDecrypt.EncryptDecrypt.md5_finish(); a = InoEncryptDecrypt.EncryptDecrypt.byteArrayToHex(digestBits); InoEncryptDecrypt.EncryptDecrypt.md5_init(); for (c = 1; c < b.length; c += 2) InoEncryptDecrypt.EncryptDecrypt.md5_update(b.charCodeAt(c)); InoEncryptDecrypt.EncryptDecrypt.md5_finish(); b = InoEncryptDecrypt.EncryptDecrypt.byteArrayToHex(digestBits); key =
            InoEncryptDecrypt.EncryptDecrypt.hexToByteArray(a + b); InoEncryptDecrypt.EncryptDecrypt.byteArrayToHex(key)
        }, encode_utf8: function (b) { var c, a = !1; for (c = 0; c < b.length; c++) if (157 == b.charCodeAt(c) || 255 < b.charCodeAt(c)) { a = !0; break } return a ? String.fromCharCode(157) + unicode_to_utf8(b) : b }, decode_utf8: function (b) { return 0 < b.length && 157 == b.charCodeAt(0) ? InoEncryptDecrypt.EncryptDecrypt.utf8_to_unicode(b.substring(1)) : b }, utf8_to_unicode: function (b) {
            for (var c = "", a = 0, d, e; a < b.length;) d = b.charCodeAt(a), 128 > d ? (c += String.fromCharCode(d),
            a++) : 192 <= d && 224 > d ? (e = b.charCodeAt(a + 1), c += String.fromCharCode((d & 31) << 6 | e & 63), a += 2) : (e = b.charCodeAt(a + 1), b3 = b.charCodeAt(a + 2), c += String.fromCharCode((d & 15) << 12 | (e & 63) << 6 | b3 & 63), a += 3); return c
        }, and: function (b, c) { b = InoEncryptDecrypt.EncryptDecrypt.integer(b); c = InoEncryptDecrypt.EncryptDecrypt.integer(c); var a = b - 2147483648, d = c - 2147483648; return 0 <= a ? 0 <= d ? (a & d) + 2147483648 : a & c : 0 <= d ? b & d : b & c }, integer: function (b) { return b % 4294967296 }, hexToByteArray: function (b) {
            var c = []; if (!(b.length % 2)) {
                if (0 == b.indexOf("0x") ||
                0 == b.indexOf("0X")) b = b.substring(2); for (var a = 0; a < b.length; a += 2) c[Math.floor(a / 2)] = parseInt(b.slice(a, a + 2), 16); return c
            }
        }, md5_init: function () { count[0] = count[1] = 0; state[0] = 1732584193; state[1] = 4023233417; state[2] = 2562383102; state[3] = 271733878; for (i = 0; i < digestBits.length; i++) digestBits[i] = 0 }, md5_finish: function () {
            var b = Array(8), c, a, d; for (a = 0; 4 > a; a++) b[a] = InoEncryptDecrypt.EncryptDecrypt.and(InoEncryptDecrypt.EncryptDecrypt.shr(count[0], 8 * a), 255); for (a = 0; 4 > a; a++) b[a + 4] = InoEncryptDecrypt.EncryptDecrypt.and(InoEncryptDecrypt.EncryptDecrypt.shr(count[1],
            8 * a), 255); c = InoEncryptDecrypt.EncryptDecrypt.and(InoEncryptDecrypt.EncryptDecrypt.shr(count[0], 3), 63); d = 56 > c ? 56 - c : 120 - c; c = Array(64); c[0] = 128; for (a = 0; a < d; a++) InoEncryptDecrypt.EncryptDecrypt.md5_update(c[a]); for (a = 0; 8 > a; a++) InoEncryptDecrypt.EncryptDecrypt.md5_update(b[a]); for (a = 0; 4 > a; a++) for (j = 0; 4 > j; j++) digestBits[4 * a + j] = InoEncryptDecrypt.EncryptDecrypt.and(InoEncryptDecrypt.EncryptDecrypt.shr(state[a], 8 * j), 255)
        }, byteArrayToHex: function (b) {
            var c = ""; if (b) {
                for (var a = 0; a < b.length; a++) c += (16 > b[a] ? "0" :
                "") + b[a].toString(16); return c
            }
        }, md5_update: function (b) { var c; c = InoEncryptDecrypt.EncryptDecrypt.and(InoEncryptDecrypt.EncryptDecrypt.shr(count[0], 3), 63); 4294967288 > count[0] || (count[1]++, count[0] -= 4294967296); count[0] += 8; buffer[c] = InoEncryptDecrypt.EncryptDecrypt.and(b, 255); 63 <= c && InoEncryptDecrypt.EncryptDecrypt.transform(buffer, 0) }, shr: function (b, c) {
            b = InoEncryptDecrypt.EncryptDecrypt.integer(b); c = InoEncryptDecrypt.EncryptDecrypt.integer(c); return 0 <= b - 2147483648 ? (b % 2147483648 >> c) + (1073741824 >> c -
            1) : b >> c
        }, array: function (b) { for (i = 0; i < b; i++) this[i] = 0; this.length = b }, transform: function (b, c) {
            var a, d, e, f, g = transformBuffer; a = state[0]; d = state[1]; e = state[2]; f = state[3]; for (i = 0; 16 > i; i++) for (g[i] = InoEncryptDecrypt.EncryptDecrypt.and(b[4 * i + c], 255), j = 1; 4 > j; j++) g[i] += InoEncryptDecrypt.EncryptDecrypt.shl(InoEncryptDecrypt.EncryptDecrypt.and(b[4 * i + j + c], 255), 8 * j); a = InoEncryptDecrypt.EncryptDecrypt.FF(a, d, e, f, g[0], 7, 3614090360); f = InoEncryptDecrypt.EncryptDecrypt.FF(f, a, d, e, g[1], 12, 3905402710); e = InoEncryptDecrypt.EncryptDecrypt.FF(e,
            f, a, d, g[2], 17, 606105819); d = InoEncryptDecrypt.EncryptDecrypt.FF(d, e, f, a, g[3], 22, 3250441966); a = InoEncryptDecrypt.EncryptDecrypt.FF(a, d, e, f, g[4], 7, 4118548399); f = InoEncryptDecrypt.EncryptDecrypt.FF(f, a, d, e, g[5], 12, 1200080426); e = InoEncryptDecrypt.EncryptDecrypt.FF(e, f, a, d, g[6], 17, 2821735955); d = InoEncryptDecrypt.EncryptDecrypt.FF(d, e, f, a, g[7], 22, 4249261313); a = InoEncryptDecrypt.EncryptDecrypt.FF(a, d, e, f, g[8], 7, 1770035416); f = InoEncryptDecrypt.EncryptDecrypt.FF(f, a, d, e, g[9], 12, 2336552879); e = InoEncryptDecrypt.EncryptDecrypt.FF(e,
            f, a, d, g[10], 17, 4294925233); d = InoEncryptDecrypt.EncryptDecrypt.FF(d, e, f, a, g[11], 22, 2304563134); a = InoEncryptDecrypt.EncryptDecrypt.FF(a, d, e, f, g[12], 7, 1804603682); f = InoEncryptDecrypt.EncryptDecrypt.FF(f, a, d, e, g[13], 12, 4254626195); e = InoEncryptDecrypt.EncryptDecrypt.FF(e, f, a, d, g[14], 17, 2792965006); d = InoEncryptDecrypt.EncryptDecrypt.FF(d, e, f, a, g[15], 22, 1236535329); a = InoEncryptDecrypt.EncryptDecrypt.GG(a, d, e, f, g[1], 5, 4129170786); f = InoEncryptDecrypt.EncryptDecrypt.GG(f, a, d, e, g[6], 9, 3225465664); e = InoEncryptDecrypt.EncryptDecrypt.GG(e,
            f, a, d, g[11], 14, 643717713); d = InoEncryptDecrypt.EncryptDecrypt.GG(d, e, f, a, g[0], 20, 3921069994); a = InoEncryptDecrypt.EncryptDecrypt.GG(a, d, e, f, g[5], 5, 3593408605); f = InoEncryptDecrypt.EncryptDecrypt.GG(f, a, d, e, g[10], 9, 38016083); e = InoEncryptDecrypt.EncryptDecrypt.GG(e, f, a, d, g[15], 14, 3634488961); d = InoEncryptDecrypt.EncryptDecrypt.GG(d, e, f, a, g[4], 20, 3889429448); a = InoEncryptDecrypt.EncryptDecrypt.GG(a, d, e, f, g[9], 5, 568446438); f = InoEncryptDecrypt.EncryptDecrypt.GG(f, a, d, e, g[14], 9, 3275163606); e = InoEncryptDecrypt.EncryptDecrypt.GG(e,
            f, a, d, g[3], 14, 4107603335); d = InoEncryptDecrypt.EncryptDecrypt.GG(d, e, f, a, g[8], 20, 1163531501); a = InoEncryptDecrypt.EncryptDecrypt.GG(a, d, e, f, g[13], 5, 2850285829); f = InoEncryptDecrypt.EncryptDecrypt.GG(f, a, d, e, g[2], 9, 4243563512); e = InoEncryptDecrypt.EncryptDecrypt.GG(e, f, a, d, g[7], 14, 1735328473); d = InoEncryptDecrypt.EncryptDecrypt.GG(d, e, f, a, g[12], 20, 2368359562); a = InoEncryptDecrypt.EncryptDecrypt.HH(a, d, e, f, g[5], 4, 4294588738); f = InoEncryptDecrypt.EncryptDecrypt.HH(f, a, d, e, g[8], 11, 2272392833); e = InoEncryptDecrypt.EncryptDecrypt.HH(e,
            f, a, d, g[11], 16, 1839030562); d = InoEncryptDecrypt.EncryptDecrypt.HH(d, e, f, a, g[14], 23, 4259657740); a = InoEncryptDecrypt.EncryptDecrypt.HH(a, d, e, f, g[1], 4, 2763975236); f = InoEncryptDecrypt.EncryptDecrypt.HH(f, a, d, e, g[4], 11, 1272893353); e = InoEncryptDecrypt.EncryptDecrypt.HH(e, f, a, d, g[7], 16, 4139469664); d = InoEncryptDecrypt.EncryptDecrypt.HH(d, e, f, a, g[10], 23, 3200236656); a = InoEncryptDecrypt.EncryptDecrypt.HH(a, d, e, f, g[13], 4, 681279174); f = InoEncryptDecrypt.EncryptDecrypt.HH(f, a, d, e, g[0], 11, 3936430074); e = InoEncryptDecrypt.EncryptDecrypt.HH(e,
            f, a, d, g[3], 16, 3572445317); d = InoEncryptDecrypt.EncryptDecrypt.HH(d, e, f, a, g[6], 23, 76029189); a = InoEncryptDecrypt.EncryptDecrypt.HH(a, d, e, f, g[9], 4, 3654602809); f = InoEncryptDecrypt.EncryptDecrypt.HH(f, a, d, e, g[12], 11, 3873151461); e = InoEncryptDecrypt.EncryptDecrypt.HH(e, f, a, d, g[15], 16, 530742520); d = InoEncryptDecrypt.EncryptDecrypt.HH(d, e, f, a, g[2], 23, 3299628645); a = InoEncryptDecrypt.EncryptDecrypt.II(a, d, e, f, g[0], 6, 4096336452); f = InoEncryptDecrypt.EncryptDecrypt.II(f, a, d, e, g[7], 10, 1126891415); e = InoEncryptDecrypt.EncryptDecrypt.II(e,
            f, a, d, g[14], 15, 2878612391); d = InoEncryptDecrypt.EncryptDecrypt.II(d, e, f, a, g[5], 21, 4237533241); a = InoEncryptDecrypt.EncryptDecrypt.II(a, d, e, f, g[12], 6, 1700485571); f = InoEncryptDecrypt.EncryptDecrypt.II(f, a, d, e, g[3], 10, 2399980690); e = InoEncryptDecrypt.EncryptDecrypt.II(e, f, a, d, g[10], 15, 4293915773); d = InoEncryptDecrypt.EncryptDecrypt.II(d, e, f, a, g[1], 21, 2240044497); a = InoEncryptDecrypt.EncryptDecrypt.II(a, d, e, f, g[8], 6, 1873313359); f = InoEncryptDecrypt.EncryptDecrypt.II(f, a, d, e, g[15], 10, 4264355552); e = InoEncryptDecrypt.EncryptDecrypt.II(e,
            f, a, d, g[6], 15, 2734768916); d = InoEncryptDecrypt.EncryptDecrypt.II(d, e, f, a, g[13], 21, 1309151649); a = InoEncryptDecrypt.EncryptDecrypt.II(a, d, e, f, g[4], 6, 4149444226); f = InoEncryptDecrypt.EncryptDecrypt.II(f, a, d, e, g[11], 10, 3174756917); e = InoEncryptDecrypt.EncryptDecrypt.II(e, f, a, d, g[2], 15, 718787259); d = InoEncryptDecrypt.EncryptDecrypt.II(d, e, f, a, g[9], 21, 3951481745); state[0] += a; state[1] += d; state[2] += e; state[3] += f
        }, F: function (b, c, a) {
            return InoEncryptDecrypt.EncryptDecrypt.or(InoEncryptDecrypt.EncryptDecrypt.and(b,
            c), InoEncryptDecrypt.EncryptDecrypt.and(InoEncryptDecrypt.EncryptDecrypt.not(b), a))
        }, G: function (b, c, a) { return InoEncryptDecrypt.EncryptDecrypt.or(InoEncryptDecrypt.EncryptDecrypt.and(b, a), InoEncryptDecrypt.EncryptDecrypt.and(c, InoEncryptDecrypt.EncryptDecrypt.not(a))) }, H: function (b, c, a) { return InoEncryptDecrypt.EncryptDecrypt.xor(InoEncryptDecrypt.EncryptDecrypt.xor(b, c), a) }, I: function (b, c, a) { return InoEncryptDecrypt.EncryptDecrypt.xor(c, InoEncryptDecrypt.EncryptDecrypt.or(b, InoEncryptDecrypt.EncryptDecrypt.not(a))) },
        rotateLeft: function (b, c) { return InoEncryptDecrypt.EncryptDecrypt.or(InoEncryptDecrypt.EncryptDecrypt.shl(b, c), InoEncryptDecrypt.EncryptDecrypt.shr(b, 32 - c)) }, FF: function (b, c, a, d, e, f, g) { b = b + InoEncryptDecrypt.EncryptDecrypt.F(c, a, d) + e + g; b = InoEncryptDecrypt.EncryptDecrypt.rotateLeft(b, f); return b + c }, GG: function (b, c, a, d, e, f, g) { b = b + InoEncryptDecrypt.EncryptDecrypt.G(c, a, d) + e + g; b = InoEncryptDecrypt.EncryptDecrypt.rotateLeft(b, f); return b + c }, HH: function (b, c, a, d, e, f, g) {
            b = b + InoEncryptDecrypt.EncryptDecrypt.H(c,
            a, d) + e + g; b = InoEncryptDecrypt.EncryptDecrypt.rotateLeft(b, f); return b + c
        }, II: function (b, c, a, d, e, f, g) { b = b + InoEncryptDecrypt.EncryptDecrypt.I(c, a, d) + e + g; b = InoEncryptDecrypt.EncryptDecrypt.rotateLeft(b, f); return b + c }, xor: function (b, c) { b = InoEncryptDecrypt.EncryptDecrypt.integer(b); c = InoEncryptDecrypt.EncryptDecrypt.integer(c); var a = b - 2147483648, d = c - 2147483648; return 0 <= a ? 0 <= d ? a ^ d : (a ^ c) + 2147483648 : 0 <= d ? (b ^ d) + 2147483648 : b ^ c }, or: function (b, c) {
            b = InoEncryptDecrypt.EncryptDecrypt.integer(b); c = InoEncryptDecrypt.EncryptDecrypt.integer(c);
            var a = b - 2147483648, d = c - 2147483648; return 0 <= a ? 0 <= d ? (a | d) + 2147483648 : (a | c) + 2147483648 : 0 <= d ? (b | d) + 2147483648 : b | c
        }, not: function (b) { b = InoEncryptDecrypt.EncryptDecrypt.integer(b); return 4294967295 - b }, shl: function (b, c) { b = InoEncryptDecrypt.EncryptDecrypt.integer(b); c = InoEncryptDecrypt.EncryptDecrypt.integer(c); for (var a = 0; a < c; a++) b = InoEncryptDecrypt.EncryptDecrypt.shl1(b); return b }, shl1: function (b) { b %= 2147483648; return b & 1 ? 2 * (b - 1073741824) + 2147483648 : 2 * b }, hexToByteArray: function (b) {
            var c = []; if (!(b.length %
            2)) { if (0 == b.indexOf("0x") || 0 == b.indexOf("0X")) b = b.substring(2); for (var a = 0; a < b.length; a += 2) c[Math.floor(a / 2)] = parseInt(b.slice(a, a + 2), 16); return c }
        }, packBytes: function (b) { var c = []; if (b && !(b.length % 4)) { c[0] = []; c[1] = []; c[2] = []; c[3] = []; for (var a = 0; a < b.length; a += 4) c[0][a / 4] = b[a], c[1][a / 4] = b[a + 1], c[2][a / 4] = b[a + 2], c[3][a / 4] = b[a + 3]; return c } }, __namespace: !0
    }
};