sha256 (v57)

Revision 57 of this benchmark created on


Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://www.bichlmeier.info/sha256.js"></script>
<script src="http://www.webtoolkit.info/djs/webtoolkit.sha256.js"></script>
<script src="http://www.movable-type.co.uk/scripts/utf8.js"></script>
<script src="http://www.movable-type.co.uk/scripts/sha256.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha256.js"></script>
<script src="http://point-at-infinity.org/jssha256/jssha256.js"></script>
<script src="http://code.alexweber.com.br/jquery/sha256/jquery.sha256.js"></script>

<script>
  var digest;




var SHA256_asm = function(input, byteOffset, byteLength) {
        "use strict";

        if (Object.prototype.toString.call(input) !== "[object ArrayBuffer]")
                throw new TypeError("First argument must be an ArrayBuffer");

        byteOffset >>>= 0;
        byteLength = (byteLength != null ? byteLength >>> 0 : input.byteLength - byteOffset);

        var
                  checksum_h = new Uint32Array([0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19])
                , input_trailing = byteLength & 0x3f
                , block_offset = byteOffset
                , block_num = (byteLength + 8) / 64 + 1 | 0
                , fill = 64
                , i, i_uint8, b
                , digest
                , tmp = new Uint32Array(2)
        ;

        while (block_num--) {

                i = new DataView(new ArrayBuffer(256));
                i_uint8 = new Uint8Array(i.buffer);

                if (block_offset + 64 > byteLength) {
                        if (input_trailing >= 0) {
                                i_uint8.set(new Uint8Array(input, block_offset, input_trailing));
                                i.setUint8(input_trailing, 0x80);
                        }

                        if (!block_num) {
                                i.setUint32(64 - 4, byteLength << 3);
                        } else {
                                input_trailing -= 64;
                        }

                } else {
                        i_uint8.set(new Uint8Array(input, block_offset, 64));
                }

                b = new Uint32Array(checksum_h);
                block_offset += 64;

                tmp[0] = (((b[7] + ((((b[4] & 0xFFFFFFFF) >>> 6) | (b[4] << (32 - 6))) ^ (((b[4] & 0xFFFFFFFF) >>> 11) | (b[4] << (32 - 11))) ^ (((b[4] & 0xFFFFFFFF) >>> 25) | (b[4] << (32 - 25)))) >>> 0) + (b[6] ^ (b[4] & (b[5] ^ b[6]))) >>> 0) + 0x428A2F98 >>> 0) + i.getUint32(0); tmp[1] = ((((b[0] & 0xFFFFFFFF) >>> 2) | (b[0] << (32 - 2))) ^ (((b[0] & 0xFFFFFFFF) >>> 13) | (b[0] << (32 - 13))) ^ (((b[0] & 0xFFFFFFFF) >>> 22) | (b[0] << (32 - 22)))) + ((b[0] & b[1]) | (b[2] & (b[0] | b[1]))); b[3] += tmp[0]; b[7] = tmp[0] + tmp[1];
                tmp[0] = (((b[6] + ((((b[3] & 0xFFFFFFFF) >>> 6) | (b[3] << (32 - 6))) ^ (((b[3] & 0xFFFFFFFF) >>> 11) | (b[3] << (32 - 11))) ^ (((b[3] & 0xFFFFFFFF) >>> 25) | (b[3] << (32 - 25)))) >>> 0) + (b[5] ^ (b[3] & (b[4] ^ b[5]))) >>> 0) + 0x71374491 >>> 0) + i.getUint32(4); tmp[1] = ((((b[7] & 0xFFFFFFFF) >>> 2) | (b[7] << (32 - 2))) ^ (((b[7] & 0xFFFFFFFF) >>> 13) | (b[7] << (32 - 13))) ^ (((b[7] & 0xFFFFFFFF) >>> 22) | (b[7] << (32 - 22)))) + ((b[7] & b[0]) | (b[1] & (b[7] | b[0]))); b[2] += tmp[0]; b[6] = tmp[0] + tmp[1];
                tmp[0] = (((b[5] + ((((b[2] & 0xFFFFFFFF) >>> 6) | (b[2] << (32 - 6))) ^ (((b[2] & 0xFFFFFFFF) >>> 11) | (b[2] << (32 - 11))) ^ (((b[2] & 0xFFFFFFFF) >>> 25) | (b[2] << (32 - 25)))) >>> 0) + (b[4] ^ (b[2] & (b[3] ^ b[4]))) >>> 0) + 0xB5C0FBCF >>> 0) + i.getUint32(8); tmp[1] = ((((b[6] & 0xFFFFFFFF) >>> 2) | (b[6] << (32 - 2))) ^ (((b[6] & 0xFFFFFFFF) >>> 13) | (b[6] << (32 - 13))) ^ (((b[6] & 0xFFFFFFFF) >>> 22) | (b[6] << (32 - 22)))) + ((b[6] & b[7]) | (b[0] & (b[6] | b[7]))); b[1] += tmp[0]; b[5] = tmp[0] + tmp[1];
                tmp[0] = (((b[4] + ((((b[1] & 0xFFFFFFFF) >>> 6) | (b[1] << (32 - 6))) ^ (((b[1] & 0xFFFFFFFF) >>> 11) | (b[1] << (32 - 11))) ^ (((b[1] & 0xFFFFFFFF) >>> 25) | (b[1] << (32 - 25)))) >>> 0) + (b[3] ^ (b[1] & (b[2] ^ b[3]))) >>> 0) + 0xE9B5DBA5 >>> 0) + i.getUint32(12); tmp[1] = ((((b[5] & 0xFFFFFFFF) >>> 2) | (b[5] << (32 - 2))) ^ (((b[5] & 0xFFFFFFFF) >>> 13) | (b[5] << (32 - 13))) ^ (((b[5] & 0xFFFFFFFF) >>> 22) | (b[5] << (32 - 22)))) + ((b[5] & b[6]) | (b[7] & (b[5] | b[6]))); b[0] += tmp[0]; b[4] = tmp[0] + tmp[1];
                tmp[0] = (((b[3] + ((((b[0] & 0xFFFFFFFF) >>> 6) | (b[0] << (32 - 6))) ^ (((b[0] & 0xFFFFFFFF) >>> 11) | (b[0] << (32 - 11))) ^ (((b[0] & 0xFFFFFFFF) >>> 25) | (b[0] << (32 - 25)))) >>> 0) + (b[2] ^ (b[0] & (b[1] ^ b[2]))) >>> 0) + 0x3956C25B >>> 0) + i.getUint32(16); tmp[1] = ((((b[4] & 0xFFFFFFFF) >>> 2) | (b[4] << (32 - 2))) ^ (((b[4] & 0xFFFFFFFF) >>> 13) | (b[4] << (32 - 13))) ^ (((b[4] & 0xFFFFFFFF) >>> 22) | (b[4] << (32 - 22)))) + ((b[4] & b[5]) | (b[6] & (b[4] | b[5]))); b[7] += tmp[0]; b[3] = tmp[0] + tmp[1];
                tmp[0] = (((b[2] + ((((b[7] & 0xFFFFFFFF) >>> 6) | (b[7] << (32 - 6))) ^ (((b[7] & 0xFFFFFFFF) >>> 11) | (b[7] << (32 - 11))) ^ (((b[7] & 0xFFFFFFFF) >>> 25) | (b[7] << (32 - 25)))) >>> 0) + (b[1] ^ (b[7] & (b[0] ^ b[1]))) >>> 0) + 0x59F111F1 >>> 0) + i.getUint32(20); tmp[1] = ((((b[3] & 0xFFFFFFFF) >>> 2) | (b[3] << (32 - 2))) ^ (((b[3] & 0xFFFFFFFF) >>> 13) | (b[3] << (32 - 13))) ^ (((b[3] & 0xFFFFFFFF) >>> 22) | (b[3] << (32 - 22)))) + ((b[3] & b[4]) | (b[5] & (b[3] | b[4]))); b[6] += tmp[0]; b[2] = tmp[0] + tmp[1];
                tmp[0] = (((b[1] + ((((b[6] & 0xFFFFFFFF) >>> 6) | (b[6] << (32 - 6))) ^ (((b[6] & 0xFFFFFFFF) >>> 11) | (b[6] << (32 - 11))) ^ (((b[6] & 0xFFFFFFFF) >>> 25) | (b[6] << (32 - 25)))) >>> 0) + (b[0] ^ (b[6] & (b[7] ^ b[0]))) >>> 0) + 0x923F82A4 >>> 0) + i.getUint32(24); tmp[1] = ((((b[2] & 0xFFFFFFFF) >>> 2) | (b[2] << (32 - 2))) ^ (((b[2] & 0xFFFFFFFF) >>> 13) | (b[2] << (32 - 13))) ^ (((b[2] & 0xFFFFFFFF) >>> 22) | (b[2] << (32 - 22)))) + ((b[2] & b[3]) | (b[4] & (b[2] | b[3]))); b[5] += tmp[0]; b[1] = tmp[0] + tmp[1];
                tmp[0] = (((b[0] + ((((b[5] & 0xFFFFFFFF) >>> 6) | (b[5] << (32 - 6))) ^ (((b[5] & 0xFFFFFFFF) >>> 11) | (b[5] << (32 - 11))) ^ (((b[5] & 0xFFFFFFFF) >>> 25) | (b[5] << (32 - 25)))) >>> 0) + (b[7] ^ (b[5] & (b[6] ^ b[7]))) >>> 0) + 0xAB1C5ED5 >>> 0) + i.getUint32(28); tmp[1] = ((((b[1] & 0xFFFFFFFF) >>> 2) | (b[1] << (32 - 2))) ^ (((b[1] & 0xFFFFFFFF) >>> 13) | (b[1] << (32 - 13))) ^ (((b[1] & 0xFFFFFFFF) >>> 22) | (b[1] << (32 - 22)))) + ((b[1] & b[2]) | (b[3] & (b[1] | b[2]))); b[4] += tmp[0]; b[0] = tmp[0] + tmp[1];
                tmp[0] = (((b[7] + ((((b[4] & 0xFFFFFFFF) >>> 6) | (b[4] << (32 - 6))) ^ (((b[4] & 0xFFFFFFFF) >>> 11) | (b[4] << (32 - 11))) ^ (((b[4] & 0xFFFFFFFF) >>> 25) | (b[4] << (32 - 25)))) >>> 0) + (b[6] ^ (b[4] & (b[5] ^ b[6]))) >>> 0) + 0xD807AA98 >>> 0) + i.getUint32(32); tmp[1] = ((((b[0] & 0xFFFFFFFF) >>> 2) | (b[0] << (32 - 2))) ^ (((b[0] & 0xFFFFFFFF) >>> 13) | (b[0] << (32 - 13))) ^ (((b[0] & 0xFFFFFFFF) >>> 22) | (b[0] << (32 - 22)))) + ((b[0] & b[1]) | (b[2] & (b[0] | b[1]))); b[3] += tmp[0]; b[7] = tmp[0] + tmp[1];
                tmp[0] = (((b[6] + ((((b[3] & 0xFFFFFFFF) >>> 6) | (b[3] << (32 - 6))) ^ (((b[3] & 0xFFFFFFFF) >>> 11) | (b[3] << (32 - 11))) ^ (((b[3] & 0xFFFFFFFF) >>> 25) | (b[3] << (32 - 25)))) >>> 0) + (b[5] ^ (b[3] & (b[4] ^ b[5]))) >>> 0) + 0x12835B01 >>> 0) + i.getUint32(36); tmp[1] = ((((b[7] & 0xFFFFFFFF) >>> 2) | (b[7] << (32 - 2))) ^ (((b[7] & 0xFFFFFFFF) >>> 13) | (b[7] << (32 - 13))) ^ (((b[7] & 0xFFFFFFFF) >>> 22) | (b[7] << (32 - 22)))) + ((b[7] & b[0]) | (b[1] & (b[7] | b[0]))); b[2] += tmp[0]; b[6] = tmp[0] + tmp[1];
                tmp[0] = (((b[5] + ((((b[2] & 0xFFFFFFFF) >>> 6) | (b[2] << (32 - 6))) ^ (((b[2] & 0xFFFFFFFF) >>> 11) | (b[2] << (32 - 11))) ^ (((b[2] & 0xFFFFFFFF) >>> 25) | (b[2] << (32 - 25)))) >>> 0) + (b[4] ^ (b[2] & (b[3] ^ b[4]))) >>> 0) + 0x243185BE >>> 0) + i.getUint32(40); tmp[1] = ((((b[6] & 0xFFFFFFFF) >>> 2) | (b[6] << (32 - 2))) ^ (((b[6] & 0xFFFFFFFF) >>> 13) | (b[6] << (32 - 13))) ^ (((b[6] & 0xFFFFFFFF) >>> 22) | (b[6] << (32 - 22)))) + ((b[6] & b[7]) | (b[0] & (b[6] | b[7]))); b[1] += tmp[0]; b[5] = tmp[0] + tmp[1];
                tmp[0] = (((b[4] + ((((b[1] & 0xFFFFFFFF) >>> 6) | (b[1] << (32 - 6))) ^ (((b[1] & 0xFFFFFFFF) >>> 11) | (b[1] << (32 - 11))) ^ (((b[1] & 0xFFFFFFFF) >>> 25) | (b[1] << (32 - 25)))) >>> 0) + (b[3] ^ (b[1] & (b[2] ^ b[3]))) >>> 0) + 0x550C7DC3 >>> 0) + i.getUint32(44); tmp[1] = ((((b[5] & 0xFFFFFFFF) >>> 2) | (b[5] << (32 - 2))) ^ (((b[5] & 0xFFFFFFFF) >>> 13) | (b[5] << (32 - 13))) ^ (((b[5] & 0xFFFFFFFF) >>> 22) | (b[5] << (32 - 22)))) + ((b[5] & b[6]) | (b[7] & (b[5] | b[6]))); b[0] += tmp[0]; b[4] = tmp[0] + tmp[1];
                tmp[0] = (((b[3] + ((((b[0] & 0xFFFFFFFF) >>> 6) | (b[0] << (32 - 6))) ^ (((b[0] & 0xFFFFFFFF) >>> 11) | (b[0] << (32 - 11))) ^ (((b[0] & 0xFFFFFFFF) >>> 25) | (b[0] << (32 - 25)))) >>> 0) + (b[2] ^ (b[0] & (b[1] ^ b[2]))) >>> 0) + 0x72BE5D74 >>> 0) + i.getUint32(48); tmp[1] = ((((b[4] & 0xFFFFFFFF) >>> 2) | (b[4] << (32 - 2))) ^ (((b[4] & 0xFFFFFFFF) >>> 13) | (b[4] << (32 - 13))) ^ (((b[4] & 0xFFFFFFFF) >>> 22) | (b[4] << (32 - 22)))) + ((b[4] & b[5]) | (b[6] & (b[4] | b[5]))); b[7] += tmp[0]; b[3] = tmp[0] + tmp[1];
                tmp[0] = (((b[2] + ((((b[7] & 0xFFFFFFFF) >>> 6) | (b[7] << (32 - 6))) ^ (((b[7] & 0xFFFFFFFF) >>> 11) | (b[7] << (32 - 11))) ^ (((b[7] & 0xFFFFFFFF) >>> 25) | (b[7] << (32 - 25)))) >>> 0) + (b[1] ^ (b[7] & (b[0] ^ b[1]))) >>> 0) + 0x80DEB1FE >>> 0) + i.getUint32(52); tmp[1] = ((((b[3] & 0xFFFFFFFF) >>> 2) | (b[3] << (32 - 2))) ^ (((b[3] & 0xFFFFFFFF) >>> 13) | (b[3] << (32 - 13))) ^ (((b[3] & 0xFFFFFFFF) >>> 22) | (b[3] << (32 - 22)))) + ((b[3] & b[4]) | (b[5] & (b[3] | b[4]))); b[6] += tmp[0]; b[2] = tmp[0] + tmp[1];
                tmp[0] = (((b[1] + ((((b[6] & 0xFFFFFFFF) >>> 6) | (b[6] << (32 - 6))) ^ (((b[6] & 0xFFFFFFFF) >>> 11) | (b[6] << (32 - 11))) ^ (((b[6] & 0xFFFFFFFF) >>> 25) | (b[6] << (32 - 25)))) >>> 0) + (b[0] ^ (b[6] & (b[7] ^ b[0]))) >>> 0) + 0x9BDC06A7 >>> 0) + i.getUint32(56); tmp[1] = ((((b[2] & 0xFFFFFFFF) >>> 2) | (b[2] << (32 - 2))) ^ (((b[2] & 0xFFFFFFFF) >>> 13) | (b[2] << (32 - 13))) ^ (((b[2] & 0xFFFFFFFF) >>> 22) | (b[2] << (32 - 22)))) + ((b[2] & b[3]) | (b[4] & (b[2] | b[3]))); b[5] += tmp[0]; b[1] = tmp[0] + tmp[1];
                tmp[0] = (((b[0] + ((((b[5] & 0xFFFFFFFF) >>> 6) | (b[5] << (32 - 6))) ^ (((b[5] & 0xFFFFFFFF) >>> 11) | (b[5] << (32 - 11))) ^ (((b[5] & 0xFFFFFFFF) >>> 25) | (b[5] << (32 - 25)))) >>> 0) + (b[7] ^ (b[5] & (b[6] ^ b[7]))) >>> 0) + 0xC19BF174 >>> 0) + i.getUint32(60); tmp[1] = ((((b[1] & 0xFFFFFFFF) >>> 2) | (b[1] << (32 - 2))) ^ (((b[1] & 0xFFFFFFFF) >>> 13) | (b[1] << (32 - 13))) ^ (((b[1] & 0xFFFFFFFF) >>> 22) | (b[1] << (32 - 22)))) + ((b[1] & b[2]) | (b[3] & (b[1] | b[2]))); b[4] += tmp[0]; b[0] = tmp[0] + tmp[1];
                tmp[0] = (((b[7] + ((((b[4] & 0xFFFFFFFF) >>> 6) | (b[4] << (32 - 6))) ^ (((b[4] & 0xFFFFFFFF) >>> 11) | (b[4] << (32 - 11))) ^ (((b[4] & 0xFFFFFFFF) >>> 25) | (b[4] << (32 - 25)))) >>> 0) + (b[6] ^ (b[4] & (b[5] ^ b[6]))) >>> 0) + 0xE49B69C1 >>> 0) + (i.setUint32(64, ((((((i.getUint32(64 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(64 - 8) << (32 - 17))) ^ (((i.getUint32(64 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(64 - 8) << (32 - 19))) ^ ((i.getUint32(64 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(64 - 28) >>> 0) + ((((i.getUint32(64 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(64 - 60) << (32 - 7))) ^ (((i.getUint32(64 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(64 - 60) << (32 - 18))) ^ ((i.getUint32(64 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(64 - 64)), i.getUint32(64)); tmp[1] = ((((b[0] & 0xFFFFFFFF) >>> 2) | (b[0] << (32 - 2))) ^ (((b[0] & 0xFFFFFFFF) >>> 13) | (b[0] << (32 - 13))) ^ (((b[0] & 0xFFFFFFFF) >>> 22) | (b[0] << (32 - 22)))) + ((b[0] & b[1]) | (b[2] & (b[0] | b[1]))); b[3] += tmp[0]; b[7] = tmp[0] + tmp[1];
                tmp[0] = (((b[6] + ((((b[3] & 0xFFFFFFFF) >>> 6) | (b[3] << (32 - 6))) ^ (((b[3] & 0xFFFFFFFF) >>> 11) | (b[3] << (32 - 11))) ^ (((b[3] & 0xFFFFFFFF) >>> 25) | (b[3] << (32 - 25)))) >>> 0) + (b[5] ^ (b[3] & (b[4] ^ b[5]))) >>> 0) + 0xEFBE4786 >>> 0) + (i.setUint32(68, ((((((i.getUint32(68 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(68 - 8) << (32 - 17))) ^ (((i.getUint32(68 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(68 - 8) << (32 - 19))) ^ ((i.getUint32(68 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(68 - 28) >>> 0) + ((((i.getUint32(68 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(68 - 60) << (32 - 7))) ^ (((i.getUint32(68 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(68 - 60) << (32 - 18))) ^ ((i.getUint32(68 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(68 - 64)), i.getUint32(68)); tmp[1] = ((((b[7] & 0xFFFFFFFF) >>> 2) | (b[7] << (32 - 2))) ^ (((b[7] & 0xFFFFFFFF) >>> 13) | (b[7] << (32 - 13))) ^ (((b[7] & 0xFFFFFFFF) >>> 22) | (b[7] << (32 - 22)))) + ((b[7] & b[0]) | (b[1] & (b[7] | b[0]))); b[2] += tmp[0]; b[6] = tmp[0] + tmp[1];
                tmp[0] = (((b[5] + ((((b[2] & 0xFFFFFFFF) >>> 6) | (b[2] << (32 - 6))) ^ (((b[2] & 0xFFFFFFFF) >>> 11) | (b[2] << (32 - 11))) ^ (((b[2] & 0xFFFFFFFF) >>> 25) | (b[2] << (32 - 25)))) >>> 0) + (b[4] ^ (b[2] & (b[3] ^ b[4]))) >>> 0) + 0x0FC19DC6 >>> 0) + (i.setUint32(72, ((((((i.getUint32(72 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(72 - 8) << (32 - 17))) ^ (((i.getUint32(72 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(72 - 8) << (32 - 19))) ^ ((i.getUint32(72 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(72 - 28) >>> 0) + ((((i.getUint32(72 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(72 - 60) << (32 - 7))) ^ (((i.getUint32(72 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(72 - 60) << (32 - 18))) ^ ((i.getUint32(72 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(72 - 64)), i.getUint32(72)); tmp[1] = ((((b[6] & 0xFFFFFFFF) >>> 2) | (b[6] << (32 - 2))) ^ (((b[6] & 0xFFFFFFFF) >>> 13) | (b[6] << (32 - 13))) ^ (((b[6] & 0xFFFFFFFF) >>> 22) | (b[6] << (32 - 22)))) + ((b[6] & b[7]) | (b[0] & (b[6] | b[7]))); b[1] += tmp[0]; b[5] = tmp[0] + tmp[1];
                tmp[0] = (((b[4] + ((((b[1] & 0xFFFFFFFF) >>> 6) | (b[1] << (32 - 6))) ^ (((b[1] & 0xFFFFFFFF) >>> 11) | (b[1] << (32 - 11))) ^ (((b[1] & 0xFFFFFFFF) >>> 25) | (b[1] << (32 - 25)))) >>> 0) + (b[3] ^ (b[1] & (b[2] ^ b[3]))) >>> 0) + 0x240CA1CC >>> 0) + (i.setUint32(76, ((((((i.getUint32(76 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(76 - 8) << (32 - 17))) ^ (((i.getUint32(76 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(76 - 8) << (32 - 19))) ^ ((i.getUint32(76 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(76 - 28) >>> 0) + ((((i.getUint32(76 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(76 - 60) << (32 - 7))) ^ (((i.getUint32(76 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(76 - 60) << (32 - 18))) ^ ((i.getUint32(76 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(76 - 64)), i.getUint32(76)); tmp[1] = ((((b[5] & 0xFFFFFFFF) >>> 2) | (b[5] << (32 - 2))) ^ (((b[5] & 0xFFFFFFFF) >>> 13) | (b[5] << (32 - 13))) ^ (((b[5] & 0xFFFFFFFF) >>> 22) | (b[5] << (32 - 22)))) + ((b[5] & b[6]) | (b[7] & (b[5] | b[6]))); b[0] += tmp[0]; b[4] = tmp[0] + tmp[1];
                tmp[0] = (((b[3] + ((((b[0] & 0xFFFFFFFF) >>> 6) | (b[0] << (32 - 6))) ^ (((b[0] & 0xFFFFFFFF) >>> 11) | (b[0] << (32 - 11))) ^ (((b[0] & 0xFFFFFFFF) >>> 25) | (b[0] << (32 - 25)))) >>> 0) + (b[2] ^ (b[0] & (b[1] ^ b[2]))) >>> 0) + 0x2DE92C6F >>> 0) + (i.setUint32(80, ((((((i.getUint32(80 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(80 - 8) << (32 - 17))) ^ (((i.getUint32(80 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(80 - 8) << (32 - 19))) ^ ((i.getUint32(80 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(80 - 28) >>> 0) + ((((i.getUint32(80 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(80 - 60) << (32 - 7))) ^ (((i.getUint32(80 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(80 - 60) << (32 - 18))) ^ ((i.getUint32(80 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(80 - 64)), i.getUint32(80)); tmp[1] = ((((b[4] & 0xFFFFFFFF) >>> 2) | (b[4] << (32 - 2))) ^ (((b[4] & 0xFFFFFFFF) >>> 13) | (b[4] << (32 - 13))) ^ (((b[4] & 0xFFFFFFFF) >>> 22) | (b[4] << (32 - 22)))) + ((b[4] & b[5]) | (b[6] & (b[4] | b[5]))); b[7] += tmp[0]; b[3] = tmp[0] + tmp[1];
                tmp[0] = (((b[2] + ((((b[7] & 0xFFFFFFFF) >>> 6) | (b[7] << (32 - 6))) ^ (((b[7] & 0xFFFFFFFF) >>> 11) | (b[7] << (32 - 11))) ^ (((b[7] & 0xFFFFFFFF) >>> 25) | (b[7] << (32 - 25)))) >>> 0) + (b[1] ^ (b[7] & (b[0] ^ b[1]))) >>> 0) + 0x4A7484AA >>> 0) + (i.setUint32(84, ((((((i.getUint32(84 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(84 - 8) << (32 - 17))) ^ (((i.getUint32(84 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(84 - 8) << (32 - 19))) ^ ((i.getUint32(84 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(84 - 28) >>> 0) + ((((i.getUint32(84 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(84 - 60) << (32 - 7))) ^ (((i.getUint32(84 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(84 - 60) << (32 - 18))) ^ ((i.getUint32(84 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(84 - 64)), i.getUint32(84)); tmp[1] = ((((b[3] & 0xFFFFFFFF) >>> 2) | (b[3] << (32 - 2))) ^ (((b[3] & 0xFFFFFFFF) >>> 13) | (b[3] << (32 - 13))) ^ (((b[3] & 0xFFFFFFFF) >>> 22) | (b[3] << (32 - 22)))) + ((b[3] & b[4]) | (b[5] & (b[3] | b[4]))); b[6] += tmp[0]; b[2] = tmp[0] + tmp[1];
                tmp[0] = (((b[1] + ((((b[6] & 0xFFFFFFFF) >>> 6) | (b[6] << (32 - 6))) ^ (((b[6] & 0xFFFFFFFF) >>> 11) | (b[6] << (32 - 11))) ^ (((b[6] & 0xFFFFFFFF) >>> 25) | (b[6] << (32 - 25)))) >>> 0) + (b[0] ^ (b[6] & (b[7] ^ b[0]))) >>> 0) + 0x5CB0A9DC >>> 0) + (i.setUint32(88, ((((((i.getUint32(88 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(88 - 8) << (32 - 17))) ^ (((i.getUint32(88 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(88 - 8) << (32 - 19))) ^ ((i.getUint32(88 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(88 - 28) >>> 0) + ((((i.getUint32(88 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(88 - 60) << (32 - 7))) ^ (((i.getUint32(88 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(88 - 60) << (32 - 18))) ^ ((i.getUint32(88 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(88 - 64)), i.getUint32(88)); tmp[1] = ((((b[2] & 0xFFFFFFFF) >>> 2) | (b[2] << (32 - 2))) ^ (((b[2] & 0xFFFFFFFF) >>> 13) | (b[2] << (32 - 13))) ^ (((b[2] & 0xFFFFFFFF) >>> 22) | (b[2] << (32 - 22)))) + ((b[2] & b[3]) | (b[4] & (b[2] | b[3]))); b[5] += tmp[0]; b[1] = tmp[0] + tmp[1];
                tmp[0] = (((b[0] + ((((b[5] & 0xFFFFFFFF) >>> 6) | (b[5] << (32 - 6))) ^ (((b[5] & 0xFFFFFFFF) >>> 11) | (b[5] << (32 - 11))) ^ (((b[5] & 0xFFFFFFFF) >>> 25) | (b[5] << (32 - 25)))) >>> 0) + (b[7] ^ (b[5] & (b[6] ^ b[7]))) >>> 0) + 0x76F988DA >>> 0) + (i.setUint32(92, ((((((i.getUint32(92 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(92 - 8) << (32 - 17))) ^ (((i.getUint32(92 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(92 - 8) << (32 - 19))) ^ ((i.getUint32(92 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(92 - 28) >>> 0) + ((((i.getUint32(92 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(92 - 60) << (32 - 7))) ^ (((i.getUint32(92 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(92 - 60) << (32 - 18))) ^ ((i.getUint32(92 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(92 - 64)), i.getUint32(92)); tmp[1] = ((((b[1] & 0xFFFFFFFF) >>> 2) | (b[1] << (32 - 2))) ^ (((b[1] & 0xFFFFFFFF) >>> 13) | (b[1] << (32 - 13))) ^ (((b[1] & 0xFFFFFFFF) >>> 22) | (b[1] << (32 - 22)))) + ((b[1] & b[2]) | (b[3] & (b[1] | b[2]))); b[4] += tmp[0]; b[0] = tmp[0] + tmp[1];
                tmp[0] = (((b[7] + ((((b[4] & 0xFFFFFFFF) >>> 6) | (b[4] << (32 - 6))) ^ (((b[4] & 0xFFFFFFFF) >>> 11) | (b[4] << (32 - 11))) ^ (((b[4] & 0xFFFFFFFF) >>> 25) | (b[4] << (32 - 25)))) >>> 0) + (b[6] ^ (b[4] & (b[5] ^ b[6]))) >>> 0) + 0x983E5152 >>> 0) + (i.setUint32(96, ((((((i.getUint32(96 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(96 - 8) << (32 - 17))) ^ (((i.getUint32(96 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(96 - 8) << (32 - 19))) ^ ((i.getUint32(96 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(96 - 28) >>> 0) + ((((i.getUint32(96 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(96 - 60) << (32 - 7))) ^ (((i.getUint32(96 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(96 - 60) << (32 - 18))) ^ ((i.getUint32(96 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(96 - 64)), i.getUint32(96)); tmp[1] = ((((b[0] & 0xFFFFFFFF) >>> 2) | (b[0] << (32 - 2))) ^ (((b[0] & 0xFFFFFFFF) >>> 13) | (b[0] << (32 - 13))) ^ (((b[0] & 0xFFFFFFFF) >>> 22) | (b[0] << (32 - 22)))) + ((b[0] & b[1]) | (b[2] & (b[0] | b[1]))); b[3] += tmp[0]; b[7] = tmp[0] + tmp[1];
                tmp[0] = (((b[6] + ((((b[3] & 0xFFFFFFFF) >>> 6) | (b[3] << (32 - 6))) ^ (((b[3] & 0xFFFFFFFF) >>> 11) | (b[3] << (32 - 11))) ^ (((b[3] & 0xFFFFFFFF) >>> 25) | (b[3] << (32 - 25)))) >>> 0) + (b[5] ^ (b[3] & (b[4] ^ b[5]))) >>> 0) + 0xA831C66D >>> 0) + (i.setUint32(100, ((((((i.getUint32(100 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(100 - 8) << (32 - 17))) ^ (((i.getUint32(100 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(100 - 8) << (32 - 19))) ^ ((i.getUint32(100 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(100 - 28) >>> 0) + ((((i.getUint32(100 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(100 - 60) << (32 - 7))) ^ (((i.getUint32(100 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(100 - 60) << (32 - 18))) ^ ((i.getUint32(100 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(100 - 64)), i.getUint32(100)); tmp[1] = ((((b[7] & 0xFFFFFFFF) >>> 2) | (b[7] << (32 - 2))) ^ (((b[7] & 0xFFFFFFFF) >>> 13) | (b[7] << (32 - 13))) ^ (((b[7] & 0xFFFFFFFF) >>> 22) | (b[7] << (32 - 22)))) + ((b[7] & b[0]) | (b[1] & (b[7] | b[0]))); b[2] += tmp[0]; b[6] = tmp[0] + tmp[1];
                tmp[0] = (((b[5] + ((((b[2] & 0xFFFFFFFF) >>> 6) | (b[2] << (32 - 6))) ^ (((b[2] & 0xFFFFFFFF) >>> 11) | (b[2] << (32 - 11))) ^ (((b[2] & 0xFFFFFFFF) >>> 25) | (b[2] << (32 - 25)))) >>> 0) + (b[4] ^ (b[2] & (b[3] ^ b[4]))) >>> 0) + 0xB00327C8 >>> 0) + (i.setUint32(104, ((((((i.getUint32(104 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(104 - 8) << (32 - 17))) ^ (((i.getUint32(104 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(104 - 8) << (32 - 19))) ^ ((i.getUint32(104 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(104 - 28) >>> 0) + ((((i.getUint32(104 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(104 - 60) << (32 - 7))) ^ (((i.getUint32(104 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(104 - 60) << (32 - 18))) ^ ((i.getUint32(104 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(104 - 64)), i.getUint32(104)); tmp[1] = ((((b[6] & 0xFFFFFFFF) >>> 2) | (b[6] << (32 - 2))) ^ (((b[6] & 0xFFFFFFFF) >>> 13) | (b[6] << (32 - 13))) ^ (((b[6] & 0xFFFFFFFF) >>> 22) | (b[6] << (32 - 22)))) + ((b[6] & b[7]) | (b[0] & (b[6] | b[7]))); b[1] += tmp[0]; b[5] = tmp[0] + tmp[1];
                tmp[0] = (((b[4] + ((((b[1] & 0xFFFFFFFF) >>> 6) | (b[1] << (32 - 6))) ^ (((b[1] & 0xFFFFFFFF) >>> 11) | (b[1] << (32 - 11))) ^ (((b[1] & 0xFFFFFFFF) >>> 25) | (b[1] << (32 - 25)))) >>> 0) + (b[3] ^ (b[1] & (b[2] ^ b[3]))) >>> 0) + 0xBF597FC7 >>> 0) + (i.setUint32(108, ((((((i.getUint32(108 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(108 - 8) << (32 - 17))) ^ (((i.getUint32(108 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(108 - 8) << (32 - 19))) ^ ((i.getUint32(108 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(108 - 28) >>> 0) + ((((i.getUint32(108 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(108 - 60) << (32 - 7))) ^ (((i.getUint32(108 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(108 - 60) << (32 - 18))) ^ ((i.getUint32(108 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(108 - 64)), i.getUint32(108)); tmp[1] = ((((b[5] & 0xFFFFFFFF) >>> 2) | (b[5] << (32 - 2))) ^ (((b[5] & 0xFFFFFFFF) >>> 13) | (b[5] << (32 - 13))) ^ (((b[5] & 0xFFFFFFFF) >>> 22) | (b[5] << (32 - 22)))) + ((b[5] & b[6]) | (b[7] & (b[5] | b[6]))); b[0] += tmp[0]; b[4] = tmp[0] + tmp[1];
                tmp[0] = (((b[3] + ((((b[0] & 0xFFFFFFFF) >>> 6) | (b[0] << (32 - 6))) ^ (((b[0] & 0xFFFFFFFF) >>> 11) | (b[0] << (32 - 11))) ^ (((b[0] & 0xFFFFFFFF) >>> 25) | (b[0] << (32 - 25)))) >>> 0) + (b[2] ^ (b[0] & (b[1] ^ b[2]))) >>> 0) + 0xC6E00BF3 >>> 0) + (i.setUint32(112, ((((((i.getUint32(112 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(112 - 8) << (32 - 17))) ^ (((i.getUint32(112 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(112 - 8) << (32 - 19))) ^ ((i.getUint32(112 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(112 - 28) >>> 0) + ((((i.getUint32(112 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(112 - 60) << (32 - 7))) ^ (((i.getUint32(112 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(112 - 60) << (32 - 18))) ^ ((i.getUint32(112 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(112 - 64)), i.getUint32(112)); tmp[1] = ((((b[4] & 0xFFFFFFFF) >>> 2) | (b[4] << (32 - 2))) ^ (((b[4] & 0xFFFFFFFF) >>> 13) | (b[4] << (32 - 13))) ^ (((b[4] & 0xFFFFFFFF) >>> 22) | (b[4] << (32 - 22)))) + ((b[4] & b[5]) | (b[6] & (b[4] | b[5]))); b[7] += tmp[0]; b[3] = tmp[0] + tmp[1];
                tmp[0] = (((b[2] + ((((b[7] & 0xFFFFFFFF) >>> 6) | (b[7] << (32 - 6))) ^ (((b[7] & 0xFFFFFFFF) >>> 11) | (b[7] << (32 - 11))) ^ (((b[7] & 0xFFFFFFFF) >>> 25) | (b[7] << (32 - 25)))) >>> 0) + (b[1] ^ (b[7] & (b[0] ^ b[1]))) >>> 0) + 0xD5A79147 >>> 0) + (i.setUint32(116, ((((((i.getUint32(116 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(116 - 8) << (32 - 17))) ^ (((i.getUint32(116 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(116 - 8) << (32 - 19))) ^ ((i.getUint32(116 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(116 - 28) >>> 0) + ((((i.getUint32(116 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(116 - 60) << (32 - 7))) ^ (((i.getUint32(116 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(116 - 60) << (32 - 18))) ^ ((i.getUint32(116 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(116 - 64)), i.getUint32(116)); tmp[1] = ((((b[3] & 0xFFFFFFFF) >>> 2) | (b[3] << (32 - 2))) ^ (((b[3] & 0xFFFFFFFF) >>> 13) | (b[3] << (32 - 13))) ^ (((b[3] & 0xFFFFFFFF) >>> 22) | (b[3] << (32 - 22)))) + ((b[3] & b[4]) | (b[5] & (b[3] | b[4]))); b[6] += tmp[0]; b[2] = tmp[0] + tmp[1];
                tmp[0] = (((b[1] + ((((b[6] & 0xFFFFFFFF) >>> 6) | (b[6] << (32 - 6))) ^ (((b[6] & 0xFFFFFFFF) >>> 11) | (b[6] << (32 - 11))) ^ (((b[6] & 0xFFFFFFFF) >>> 25) | (b[6] << (32 - 25)))) >>> 0) + (b[0] ^ (b[6] & (b[7] ^ b[0]))) >>> 0) + 0x06CA6351 >>> 0) + (i.setUint32(120, ((((((i.getUint32(120 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(120 - 8) << (32 - 17))) ^ (((i.getUint32(120 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(120 - 8) << (32 - 19))) ^ ((i.getUint32(120 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(120 - 28) >>> 0) + ((((i.getUint32(120 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(120 - 60) << (32 - 7))) ^ (((i.getUint32(120 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(120 - 60) << (32 - 18))) ^ ((i.getUint32(120 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(120 - 64)), i.getUint32(120)); tmp[1] = ((((b[2] & 0xFFFFFFFF) >>> 2) | (b[2] << (32 - 2))) ^ (((b[2] & 0xFFFFFFFF) >>> 13) | (b[2] << (32 - 13))) ^ (((b[2] & 0xFFFFFFFF) >>> 22) | (b[2] << (32 - 22)))) + ((b[2] & b[3]) | (b[4] & (b[2] | b[3]))); b[5] += tmp[0]; b[1] = tmp[0] + tmp[1];
                tmp[0] = (((b[0] + ((((b[5] & 0xFFFFFFFF) >>> 6) | (b[5] << (32 - 6))) ^ (((b[5] & 0xFFFFFFFF) >>> 11) | (b[5] << (32 - 11))) ^ (((b[5] & 0xFFFFFFFF) >>> 25) | (b[5] << (32 - 25)))) >>> 0) + (b[7] ^ (b[5] & (b[6] ^ b[7]))) >>> 0) + 0x14292967 >>> 0) + (i.setUint32(124, ((((((i.getUint32(124 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(124 - 8) << (32 - 17))) ^ (((i.getUint32(124 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(124 - 8) << (32 - 19))) ^ ((i.getUint32(124 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(124 - 28) >>> 0) + ((((i.getUint32(124 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(124 - 60) << (32 - 7))) ^ (((i.getUint32(124 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(124 - 60) << (32 - 18))) ^ ((i.getUint32(124 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(124 - 64)), i.getUint32(124)); tmp[1] = ((((b[1] & 0xFFFFFFFF) >>> 2) | (b[1] << (32 - 2))) ^ (((b[1] & 0xFFFFFFFF) >>> 13) | (b[1] << (32 - 13))) ^ (((b[1] & 0xFFFFFFFF) >>> 22) | (b[1] << (32 - 22)))) + ((b[1] & b[2]) | (b[3] & (b[1] | b[2]))); b[4] += tmp[0]; b[0] = tmp[0] + tmp[1];
                tmp[0] = (((b[7] + ((((b[4] & 0xFFFFFFFF) >>> 6) | (b[4] << (32 - 6))) ^ (((b[4] & 0xFFFFFFFF) >>> 11) | (b[4] << (32 - 11))) ^ (((b[4] & 0xFFFFFFFF) >>> 25) | (b[4] << (32 - 25)))) >>> 0) + (b[6] ^ (b[4] & (b[5] ^ b[6]))) >>> 0) + 0x27B70A85 >>> 0) + (i.setUint32(128, ((((((i.getUint32(128 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(128 - 8) << (32 - 17))) ^ (((i.getUint32(128 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(128 - 8) << (32 - 19))) ^ ((i.getUint32(128 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(128 - 28) >>> 0) + ((((i.getUint32(128 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(128 - 60) << (32 - 7))) ^ (((i.getUint32(128 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(128 - 60) << (32 - 18))) ^ ((i.getUint32(128 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(128 - 64)), i.getUint32(128)); tmp[1] = ((((b[0] & 0xFFFFFFFF) >>> 2) | (b[0] << (32 - 2))) ^ (((b[0] & 0xFFFFFFFF) >>> 13) | (b[0] << (32 - 13))) ^ (((b[0] & 0xFFFFFFFF) >>> 22) | (b[0] << (32 - 22)))) + ((b[0] & b[1]) | (b[2] & (b[0] | b[1]))); b[3] += tmp[0]; b[7] = tmp[0] + tmp[1];
                tmp[0] = (((b[6] + ((((b[3] & 0xFFFFFFFF) >>> 6) | (b[3] << (32 - 6))) ^ (((b[3] & 0xFFFFFFFF) >>> 11) | (b[3] << (32 - 11))) ^ (((b[3] & 0xFFFFFFFF) >>> 25) | (b[3] << (32 - 25)))) >>> 0) + (b[5] ^ (b[3] & (b[4] ^ b[5]))) >>> 0) + 0x2E1B2138 >>> 0) + (i.setUint32(132, ((((((i.getUint32(132 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(132 - 8) << (32 - 17))) ^ (((i.getUint32(132 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(132 - 8) << (32 - 19))) ^ ((i.getUint32(132 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(132 - 28) >>> 0) + ((((i.getUint32(132 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(132 - 60) << (32 - 7))) ^ (((i.getUint32(132 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(132 - 60) << (32 - 18))) ^ ((i.getUint32(132 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(132 - 64)), i.getUint32(132)); tmp[1] = ((((b[7] & 0xFFFFFFFF) >>> 2) | (b[7] << (32 - 2))) ^ (((b[7] & 0xFFFFFFFF) >>> 13) | (b[7] << (32 - 13))) ^ (((b[7] & 0xFFFFFFFF) >>> 22) | (b[7] << (32 - 22)))) + ((b[7] & b[0]) | (b[1] & (b[7] | b[0]))); b[2] += tmp[0]; b[6] = tmp[0] + tmp[1];
                tmp[0] = (((b[5] + ((((b[2] & 0xFFFFFFFF) >>> 6) | (b[2] << (32 - 6))) ^ (((b[2] & 0xFFFFFFFF) >>> 11) | (b[2] << (32 - 11))) ^ (((b[2] & 0xFFFFFFFF) >>> 25) | (b[2] << (32 - 25)))) >>> 0) + (b[4] ^ (b[2] & (b[3] ^ b[4]))) >>> 0) + 0x4D2C6DFC >>> 0) + (i.setUint32(136, ((((((i.getUint32(136 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(136 - 8) << (32 - 17))) ^ (((i.getUint32(136 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(136 - 8) << (32 - 19))) ^ ((i.getUint32(136 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(136 - 28) >>> 0) + ((((i.getUint32(136 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(136 - 60) << (32 - 7))) ^ (((i.getUint32(136 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(136 - 60) << (32 - 18))) ^ ((i.getUint32(136 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(136 - 64)), i.getUint32(136)); tmp[1] = ((((b[6] & 0xFFFFFFFF) >>> 2) | (b[6] << (32 - 2))) ^ (((b[6] & 0xFFFFFFFF) >>> 13) | (b[6] << (32 - 13))) ^ (((b[6] & 0xFFFFFFFF) >>> 22) | (b[6] << (32 - 22)))) + ((b[6] & b[7]) | (b[0] & (b[6] | b[7]))); b[1] += tmp[0]; b[5] = tmp[0] + tmp[1];
                tmp[0] = (((b[4] + ((((b[1] & 0xFFFFFFFF) >>> 6) | (b[1] << (32 - 6))) ^ (((b[1] & 0xFFFFFFFF) >>> 11) | (b[1] << (32 - 11))) ^ (((b[1] & 0xFFFFFFFF) >>> 25) | (b[1] << (32 - 25)))) >>> 0) + (b[3] ^ (b[1] & (b[2] ^ b[3]))) >>> 0) + 0x53380D13 >>> 0) + (i.setUint32(140, ((((((i.getUint32(140 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(140 - 8) << (32 - 17))) ^ (((i.getUint32(140 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(140 - 8) << (32 - 19))) ^ ((i.getUint32(140 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(140 - 28) >>> 0) + ((((i.getUint32(140 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(140 - 60) << (32 - 7))) ^ (((i.getUint32(140 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(140 - 60) << (32 - 18))) ^ ((i.getUint32(140 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(140 - 64)), i.getUint32(140)); tmp[1] = ((((b[5] & 0xFFFFFFFF) >>> 2) | (b[5] << (32 - 2))) ^ (((b[5] & 0xFFFFFFFF) >>> 13) | (b[5] << (32 - 13))) ^ (((b[5] & 0xFFFFFFFF) >>> 22) | (b[5] << (32 - 22)))) + ((b[5] & b[6]) | (b[7] & (b[5] | b[6]))); b[0] += tmp[0]; b[4] = tmp[0] + tmp[1];
                tmp[0] = (((b[3] + ((((b[0] & 0xFFFFFFFF) >>> 6) | (b[0] << (32 - 6))) ^ (((b[0] & 0xFFFFFFFF) >>> 11) | (b[0] << (32 - 11))) ^ (((b[0] & 0xFFFFFFFF) >>> 25) | (b[0] << (32 - 25)))) >>> 0) + (b[2] ^ (b[0] & (b[1] ^ b[2]))) >>> 0) + 0x650A7354 >>> 0) + (i.setUint32(144, ((((((i.getUint32(144 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(144 - 8) << (32 - 17))) ^ (((i.getUint32(144 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(144 - 8) << (32 - 19))) ^ ((i.getUint32(144 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(144 - 28) >>> 0) + ((((i.getUint32(144 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(144 - 60) << (32 - 7))) ^ (((i.getUint32(144 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(144 - 60) << (32 - 18))) ^ ((i.getUint32(144 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(144 - 64)), i.getUint32(144)); tmp[1] = ((((b[4] & 0xFFFFFFFF) >>> 2) | (b[4] << (32 - 2))) ^ (((b[4] & 0xFFFFFFFF) >>> 13) | (b[4] << (32 - 13))) ^ (((b[4] & 0xFFFFFFFF) >>> 22) | (b[4] << (32 - 22)))) + ((b[4] & b[5]) | (b[6] & (b[4] | b[5]))); b[7] += tmp[0]; b[3] = tmp[0] + tmp[1];
                tmp[0] = (((b[2] + ((((b[7] & 0xFFFFFFFF) >>> 6) | (b[7] << (32 - 6))) ^ (((b[7] & 0xFFFFFFFF) >>> 11) | (b[7] << (32 - 11))) ^ (((b[7] & 0xFFFFFFFF) >>> 25) | (b[7] << (32 - 25)))) >>> 0) + (b[1] ^ (b[7] & (b[0] ^ b[1]))) >>> 0) + 0x766A0ABB >>> 0) + (i.setUint32(148, ((((((i.getUint32(148 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(148 - 8) << (32 - 17))) ^ (((i.getUint32(148 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(148 - 8) << (32 - 19))) ^ ((i.getUint32(148 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(148 - 28) >>> 0) + ((((i.getUint32(148 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(148 - 60) << (32 - 7))) ^ (((i.getUint32(148 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(148 - 60) << (32 - 18))) ^ ((i.getUint32(148 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(148 - 64)), i.getUint32(148)); tmp[1] = ((((b[3] & 0xFFFFFFFF) >>> 2) | (b[3] << (32 - 2))) ^ (((b[3] & 0xFFFFFFFF) >>> 13) | (b[3] << (32 - 13))) ^ (((b[3] & 0xFFFFFFFF) >>> 22) | (b[3] << (32 - 22)))) + ((b[3] & b[4]) | (b[5] & (b[3] | b[4]))); b[6] += tmp[0]; b[2] = tmp[0] + tmp[1];
                tmp[0] = (((b[1] + ((((b[6] & 0xFFFFFFFF) >>> 6) | (b[6] << (32 - 6))) ^ (((b[6] & 0xFFFFFFFF) >>> 11) | (b[6] << (32 - 11))) ^ (((b[6] & 0xFFFFFFFF) >>> 25) | (b[6] << (32 - 25)))) >>> 0) + (b[0] ^ (b[6] & (b[7] ^ b[0]))) >>> 0) + 0x81C2C92E >>> 0) + (i.setUint32(152, ((((((i.getUint32(152 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(152 - 8) << (32 - 17))) ^ (((i.getUint32(152 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(152 - 8) << (32 - 19))) ^ ((i.getUint32(152 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(152 - 28) >>> 0) + ((((i.getUint32(152 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(152 - 60) << (32 - 7))) ^ (((i.getUint32(152 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(152 - 60) << (32 - 18))) ^ ((i.getUint32(152 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(152 - 64)), i.getUint32(152)); tmp[1] = ((((b[2] & 0xFFFFFFFF) >>> 2) | (b[2] << (32 - 2))) ^ (((b[2] & 0xFFFFFFFF) >>> 13) | (b[2] << (32 - 13))) ^ (((b[2] & 0xFFFFFFFF) >>> 22) | (b[2] << (32 - 22)))) + ((b[2] & b[3]) | (b[4] & (b[2] | b[3]))); b[5] += tmp[0]; b[1] = tmp[0] + tmp[1];
                tmp[0] = (((b[0] + ((((b[5] & 0xFFFFFFFF) >>> 6) | (b[5] << (32 - 6))) ^ (((b[5] & 0xFFFFFFFF) >>> 11) | (b[5] << (32 - 11))) ^ (((b[5] & 0xFFFFFFFF) >>> 25) | (b[5] << (32 - 25)))) >>> 0) + (b[7] ^ (b[5] & (b[6] ^ b[7]))) >>> 0) + 0x92722C85 >>> 0) + (i.setUint32(156, ((((((i.getUint32(156 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(156 - 8) << (32 - 17))) ^ (((i.getUint32(156 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(156 - 8) << (32 - 19))) ^ ((i.getUint32(156 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(156 - 28) >>> 0) + ((((i.getUint32(156 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(156 - 60) << (32 - 7))) ^ (((i.getUint32(156 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(156 - 60) << (32 - 18))) ^ ((i.getUint32(156 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(156 - 64)), i.getUint32(156)); tmp[1] = ((((b[1] & 0xFFFFFFFF) >>> 2) | (b[1] << (32 - 2))) ^ (((b[1] & 0xFFFFFFFF) >>> 13) | (b[1] << (32 - 13))) ^ (((b[1] & 0xFFFFFFFF) >>> 22) | (b[1] << (32 - 22)))) + ((b[1] & b[2]) | (b[3] & (b[1] | b[2]))); b[4] += tmp[0]; b[0] = tmp[0] + tmp[1];
                tmp[0] = (((b[7] + ((((b[4] & 0xFFFFFFFF) >>> 6) | (b[4] << (32 - 6))) ^ (((b[4] & 0xFFFFFFFF) >>> 11) | (b[4] << (32 - 11))) ^ (((b[4] & 0xFFFFFFFF) >>> 25) | (b[4] << (32 - 25)))) >>> 0) + (b[6] ^ (b[4] & (b[5] ^ b[6]))) >>> 0) + 0xA2BFE8A1 >>> 0) + (i.setUint32(160, ((((((i.getUint32(160 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(160 - 8) << (32 - 17))) ^ (((i.getUint32(160 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(160 - 8) << (32 - 19))) ^ ((i.getUint32(160 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(160 - 28) >>> 0) + ((((i.getUint32(160 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(160 - 60) << (32 - 7))) ^ (((i.getUint32(160 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(160 - 60) << (32 - 18))) ^ ((i.getUint32(160 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(160 - 64)), i.getUint32(160)); tmp[1] = ((((b[0] & 0xFFFFFFFF) >>> 2) | (b[0] << (32 - 2))) ^ (((b[0] & 0xFFFFFFFF) >>> 13) | (b[0] << (32 - 13))) ^ (((b[0] & 0xFFFFFFFF) >>> 22) | (b[0] << (32 - 22)))) + ((b[0] & b[1]) | (b[2] & (b[0] | b[1]))); b[3] += tmp[0]; b[7] = tmp[0] + tmp[1];
                tmp[0] = (((b[6] + ((((b[3] & 0xFFFFFFFF) >>> 6) | (b[3] << (32 - 6))) ^ (((b[3] & 0xFFFFFFFF) >>> 11) | (b[3] << (32 - 11))) ^ (((b[3] & 0xFFFFFFFF) >>> 25) | (b[3] << (32 - 25)))) >>> 0) + (b[5] ^ (b[3] & (b[4] ^ b[5]))) >>> 0) + 0xA81A664B >>> 0) + (i.setUint32(164, ((((((i.getUint32(164 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(164 - 8) << (32 - 17))) ^ (((i.getUint32(164 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(164 - 8) << (32 - 19))) ^ ((i.getUint32(164 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(164 - 28) >>> 0) + ((((i.getUint32(164 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(164 - 60) << (32 - 7))) ^ (((i.getUint32(164 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(164 - 60) << (32 - 18))) ^ ((i.getUint32(164 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(164 - 64)), i.getUint32(164)); tmp[1] = ((((b[7] & 0xFFFFFFFF) >>> 2) | (b[7] << (32 - 2))) ^ (((b[7] & 0xFFFFFFFF) >>> 13) | (b[7] << (32 - 13))) ^ (((b[7] & 0xFFFFFFFF) >>> 22) | (b[7] << (32 - 22)))) + ((b[7] & b[0]) | (b[1] & (b[7] | b[0]))); b[2] += tmp[0]; b[6] = tmp[0] + tmp[1];
                tmp[0] = (((b[5] + ((((b[2] & 0xFFFFFFFF) >>> 6) | (b[2] << (32 - 6))) ^ (((b[2] & 0xFFFFFFFF) >>> 11) | (b[2] << (32 - 11))) ^ (((b[2] & 0xFFFFFFFF) >>> 25) | (b[2] << (32 - 25)))) >>> 0) + (b[4] ^ (b[2] & (b[3] ^ b[4]))) >>> 0) + 0xC24B8B70 >>> 0) + (i.setUint32(168, ((((((i.getUint32(168 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(168 - 8) << (32 - 17))) ^ (((i.getUint32(168 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(168 - 8) << (32 - 19))) ^ ((i.getUint32(168 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(168 - 28) >>> 0) + ((((i.getUint32(168 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(168 - 60) << (32 - 7))) ^ (((i.getUint32(168 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(168 - 60) << (32 - 18))) ^ ((i.getUint32(168 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(168 - 64)), i.getUint32(168)); tmp[1] = ((((b[6] & 0xFFFFFFFF) >>> 2) | (b[6] << (32 - 2))) ^ (((b[6] & 0xFFFFFFFF) >>> 13) | (b[6] << (32 - 13))) ^ (((b[6] & 0xFFFFFFFF) >>> 22) | (b[6] << (32 - 22)))) + ((b[6] & b[7]) | (b[0] & (b[6] | b[7]))); b[1] += tmp[0]; b[5] = tmp[0] + tmp[1];
                tmp[0] = (((b[4] + ((((b[1] & 0xFFFFFFFF) >>> 6) | (b[1] << (32 - 6))) ^ (((b[1] & 0xFFFFFFFF) >>> 11) | (b[1] << (32 - 11))) ^ (((b[1] & 0xFFFFFFFF) >>> 25) | (b[1] << (32 - 25)))) >>> 0) + (b[3] ^ (b[1] & (b[2] ^ b[3]))) >>> 0) + 0xC76C51A3 >>> 0) + (i.setUint32(172, ((((((i.getUint32(172 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(172 - 8) << (32 - 17))) ^ (((i.getUint32(172 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(172 - 8) << (32 - 19))) ^ ((i.getUint32(172 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(172 - 28) >>> 0) + ((((i.getUint32(172 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(172 - 60) << (32 - 7))) ^ (((i.getUint32(172 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(172 - 60) << (32 - 18))) ^ ((i.getUint32(172 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(172 - 64)), i.getUint32(172)); tmp[1] = ((((b[5] & 0xFFFFFFFF) >>> 2) | (b[5] << (32 - 2))) ^ (((b[5] & 0xFFFFFFFF) >>> 13) | (b[5] << (32 - 13))) ^ (((b[5] & 0xFFFFFFFF) >>> 22) | (b[5] << (32 - 22)))) + ((b[5] & b[6]) | (b[7] & (b[5] | b[6]))); b[0] += tmp[0]; b[4] = tmp[0] + tmp[1];
                tmp[0] = (((b[3] + ((((b[0] & 0xFFFFFFFF) >>> 6) | (b[0] << (32 - 6))) ^ (((b[0] & 0xFFFFFFFF) >>> 11) | (b[0] << (32 - 11))) ^ (((b[0] & 0xFFFFFFFF) >>> 25) | (b[0] << (32 - 25)))) >>> 0) + (b[2] ^ (b[0] & (b[1] ^ b[2]))) >>> 0) + 0xD192E819 >>> 0) + (i.setUint32(176, ((((((i.getUint32(176 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(176 - 8) << (32 - 17))) ^ (((i.getUint32(176 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(176 - 8) << (32 - 19))) ^ ((i.getUint32(176 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(176 - 28) >>> 0) + ((((i.getUint32(176 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(176 - 60) << (32 - 7))) ^ (((i.getUint32(176 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(176 - 60) << (32 - 18))) ^ ((i.getUint32(176 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(176 - 64)), i.getUint32(176)); tmp[1] = ((((b[4] & 0xFFFFFFFF) >>> 2) | (b[4] << (32 - 2))) ^ (((b[4] & 0xFFFFFFFF) >>> 13) | (b[4] << (32 - 13))) ^ (((b[4] & 0xFFFFFFFF) >>> 22) | (b[4] << (32 - 22)))) + ((b[4] & b[5]) | (b[6] & (b[4] | b[5]))); b[7] += tmp[0]; b[3] = tmp[0] + tmp[1];
                tmp[0] = (((b[2] + ((((b[7] & 0xFFFFFFFF) >>> 6) | (b[7] << (32 - 6))) ^ (((b[7] & 0xFFFFFFFF) >>> 11) | (b[7] << (32 - 11))) ^ (((b[7] & 0xFFFFFFFF) >>> 25) | (b[7] << (32 - 25)))) >>> 0) + (b[1] ^ (b[7] & (b[0] ^ b[1]))) >>> 0) + 0xD6990624 >>> 0) + (i.setUint32(180, ((((((i.getUint32(180 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(180 - 8) << (32 - 17))) ^ (((i.getUint32(180 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(180 - 8) << (32 - 19))) ^ ((i.getUint32(180 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(180 - 28) >>> 0) + ((((i.getUint32(180 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(180 - 60) << (32 - 7))) ^ (((i.getUint32(180 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(180 - 60) << (32 - 18))) ^ ((i.getUint32(180 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(180 - 64)), i.getUint32(180)); tmp[1] = ((((b[3] & 0xFFFFFFFF) >>> 2) | (b[3] << (32 - 2))) ^ (((b[3] & 0xFFFFFFFF) >>> 13) | (b[3] << (32 - 13))) ^ (((b[3] & 0xFFFFFFFF) >>> 22) | (b[3] << (32 - 22)))) + ((b[3] & b[4]) | (b[5] & (b[3] | b[4]))); b[6] += tmp[0]; b[2] = tmp[0] + tmp[1];
                tmp[0] = (((b[1] + ((((b[6] & 0xFFFFFFFF) >>> 6) | (b[6] << (32 - 6))) ^ (((b[6] & 0xFFFFFFFF) >>> 11) | (b[6] << (32 - 11))) ^ (((b[6] & 0xFFFFFFFF) >>> 25) | (b[6] << (32 - 25)))) >>> 0) + (b[0] ^ (b[6] & (b[7] ^ b[0]))) >>> 0) + 0xF40E3585 >>> 0) + (i.setUint32(184, ((((((i.getUint32(184 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(184 - 8) << (32 - 17))) ^ (((i.getUint32(184 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(184 - 8) << (32 - 19))) ^ ((i.getUint32(184 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(184 - 28) >>> 0) + ((((i.getUint32(184 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(184 - 60) << (32 - 7))) ^ (((i.getUint32(184 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(184 - 60) << (32 - 18))) ^ ((i.getUint32(184 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(184 - 64)), i.getUint32(184)); tmp[1] = ((((b[2] & 0xFFFFFFFF) >>> 2) | (b[2] << (32 - 2))) ^ (((b[2] & 0xFFFFFFFF) >>> 13) | (b[2] << (32 - 13))) ^ (((b[2] & 0xFFFFFFFF) >>> 22) | (b[2] << (32 - 22)))) + ((b[2] & b[3]) | (b[4] & (b[2] | b[3]))); b[5] += tmp[0]; b[1] = tmp[0] + tmp[1];
                tmp[0] = (((b[0] + ((((b[5] & 0xFFFFFFFF) >>> 6) | (b[5] << (32 - 6))) ^ (((b[5] & 0xFFFFFFFF) >>> 11) | (b[5] << (32 - 11))) ^ (((b[5] & 0xFFFFFFFF) >>> 25) | (b[5] << (32 - 25)))) >>> 0) + (b[7] ^ (b[5] & (b[6] ^ b[7]))) >>> 0) + 0x106AA070 >>> 0) + (i.setUint32(188, ((((((i.getUint32(188 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(188 - 8) << (32 - 17))) ^ (((i.getUint32(188 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(188 - 8) << (32 - 19))) ^ ((i.getUint32(188 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(188 - 28) >>> 0) + ((((i.getUint32(188 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(188 - 60) << (32 - 7))) ^ (((i.getUint32(188 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(188 - 60) << (32 - 18))) ^ ((i.getUint32(188 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(188 - 64)), i.getUint32(188)); tmp[1] = ((((b[1] & 0xFFFFFFFF) >>> 2) | (b[1] << (32 - 2))) ^ (((b[1] & 0xFFFFFFFF) >>> 13) | (b[1] << (32 - 13))) ^ (((b[1] & 0xFFFFFFFF) >>> 22) | (b[1] << (32 - 22)))) + ((b[1] & b[2]) | (b[3] & (b[1] | b[2]))); b[4] += tmp[0]; b[0] = tmp[0] + tmp[1];
                tmp[0] = (((b[7] + ((((b[4] & 0xFFFFFFFF) >>> 6) | (b[4] << (32 - 6))) ^ (((b[4] & 0xFFFFFFFF) >>> 11) | (b[4] << (32 - 11))) ^ (((b[4] & 0xFFFFFFFF) >>> 25) | (b[4] << (32 - 25)))) >>> 0) + (b[6] ^ (b[4] & (b[5] ^ b[6]))) >>> 0) + 0x19A4C116 >>> 0) + (i.setUint32(192, ((((((i.getUint32(192 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(192 - 8) << (32 - 17))) ^ (((i.getUint32(192 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(192 - 8) << (32 - 19))) ^ ((i.getUint32(192 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(192 - 28) >>> 0) + ((((i.getUint32(192 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(192 - 60) << (32 - 7))) ^ (((i.getUint32(192 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(192 - 60) << (32 - 18))) ^ ((i.getUint32(192 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(192 - 64)), i.getUint32(192)); tmp[1] = ((((b[0] & 0xFFFFFFFF) >>> 2) | (b[0] << (32 - 2))) ^ (((b[0] & 0xFFFFFFFF) >>> 13) | (b[0] << (32 - 13))) ^ (((b[0] & 0xFFFFFFFF) >>> 22) | (b[0] << (32 - 22)))) + ((b[0] & b[1]) | (b[2] & (b[0] | b[1]))); b[3] += tmp[0]; b[7] = tmp[0] + tmp[1];
                tmp[0] = (((b[6] + ((((b[3] & 0xFFFFFFFF) >>> 6) | (b[3] << (32 - 6))) ^ (((b[3] & 0xFFFFFFFF) >>> 11) | (b[3] << (32 - 11))) ^ (((b[3] & 0xFFFFFFFF) >>> 25) | (b[3] << (32 - 25)))) >>> 0) + (b[5] ^ (b[3] & (b[4] ^ b[5]))) >>> 0) + 0x1E376C08 >>> 0) + (i.setUint32(196, ((((((i.getUint32(196 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(196 - 8) << (32 - 17))) ^ (((i.getUint32(196 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(196 - 8) << (32 - 19))) ^ ((i.getUint32(196 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(196 - 28) >>> 0) + ((((i.getUint32(196 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(196 - 60) << (32 - 7))) ^ (((i.getUint32(196 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(196 - 60) << (32 - 18))) ^ ((i.getUint32(196 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(196 - 64)), i.getUint32(196)); tmp[1] = ((((b[7] & 0xFFFFFFFF) >>> 2) | (b[7] << (32 - 2))) ^ (((b[7] & 0xFFFFFFFF) >>> 13) | (b[7] << (32 - 13))) ^ (((b[7] & 0xFFFFFFFF) >>> 22) | (b[7] << (32 - 22)))) + ((b[7] & b[0]) | (b[1] & (b[7] | b[0]))); b[2] += tmp[0]; b[6] = tmp[0] + tmp[1];
                tmp[0] = (((b[5] + ((((b[2] & 0xFFFFFFFF) >>> 6) | (b[2] << (32 - 6))) ^ (((b[2] & 0xFFFFFFFF) >>> 11) | (b[2] << (32 - 11))) ^ (((b[2] & 0xFFFFFFFF) >>> 25) | (b[2] << (32 - 25)))) >>> 0) + (b[4] ^ (b[2] & (b[3] ^ b[4]))) >>> 0) + 0x2748774C >>> 0) + (i.setUint32(200, ((((((i.getUint32(200 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(200 - 8) << (32 - 17))) ^ (((i.getUint32(200 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(200 - 8) << (32 - 19))) ^ ((i.getUint32(200 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(200 - 28) >>> 0) + ((((i.getUint32(200 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(200 - 60) << (32 - 7))) ^ (((i.getUint32(200 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(200 - 60) << (32 - 18))) ^ ((i.getUint32(200 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(200 - 64)), i.getUint32(200)); tmp[1] = ((((b[6] & 0xFFFFFFFF) >>> 2) | (b[6] << (32 - 2))) ^ (((b[6] & 0xFFFFFFFF) >>> 13) | (b[6] << (32 - 13))) ^ (((b[6] & 0xFFFFFFFF) >>> 22) | (b[6] << (32 - 22)))) + ((b[6] & b[7]) | (b[0] & (b[6] | b[7]))); b[1] += tmp[0]; b[5] = tmp[0] + tmp[1];
                tmp[0] = (((b[4] + ((((b[1] & 0xFFFFFFFF) >>> 6) | (b[1] << (32 - 6))) ^ (((b[1] & 0xFFFFFFFF) >>> 11) | (b[1] << (32 - 11))) ^ (((b[1] & 0xFFFFFFFF) >>> 25) | (b[1] << (32 - 25)))) >>> 0) + (b[3] ^ (b[1] & (b[2] ^ b[3]))) >>> 0) + 0x34B0BCB5 >>> 0) + (i.setUint32(204, ((((((i.getUint32(204 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(204 - 8) << (32 - 17))) ^ (((i.getUint32(204 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(204 - 8) << (32 - 19))) ^ ((i.getUint32(204 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(204 - 28) >>> 0) + ((((i.getUint32(204 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(204 - 60) << (32 - 7))) ^ (((i.getUint32(204 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(204 - 60) << (32 - 18))) ^ ((i.getUint32(204 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(204 - 64)), i.getUint32(204)); tmp[1] = ((((b[5] & 0xFFFFFFFF) >>> 2) | (b[5] << (32 - 2))) ^ (((b[5] & 0xFFFFFFFF) >>> 13) | (b[5] << (32 - 13))) ^ (((b[5] & 0xFFFFFFFF) >>> 22) | (b[5] << (32 - 22)))) + ((b[5] & b[6]) | (b[7] & (b[5] | b[6]))); b[0] += tmp[0]; b[4] = tmp[0] + tmp[1];
                tmp[0] = (((b[3] + ((((b[0] & 0xFFFFFFFF) >>> 6) | (b[0] << (32 - 6))) ^ (((b[0] & 0xFFFFFFFF) >>> 11) | (b[0] << (32 - 11))) ^ (((b[0] & 0xFFFFFFFF) >>> 25) | (b[0] << (32 - 25)))) >>> 0) + (b[2] ^ (b[0] & (b[1] ^ b[2]))) >>> 0) + 0x391C0CB3 >>> 0) + (i.setUint32(208, ((((((i.getUint32(208 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(208 - 8) << (32 - 17))) ^ (((i.getUint32(208 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(208 - 8) << (32 - 19))) ^ ((i.getUint32(208 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(208 - 28) >>> 0) + ((((i.getUint32(208 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(208 - 60) << (32 - 7))) ^ (((i.getUint32(208 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(208 - 60) << (32 - 18))) ^ ((i.getUint32(208 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(208 - 64)), i.getUint32(208)); tmp[1] = ((((b[4] & 0xFFFFFFFF) >>> 2) | (b[4] << (32 - 2))) ^ (((b[4] & 0xFFFFFFFF) >>> 13) | (b[4] << (32 - 13))) ^ (((b[4] & 0xFFFFFFFF) >>> 22) | (b[4] << (32 - 22)))) + ((b[4] & b[5]) | (b[6] & (b[4] | b[5]))); b[7] += tmp[0]; b[3] = tmp[0] + tmp[1];
                tmp[0] = (((b[2] + ((((b[7] & 0xFFFFFFFF) >>> 6) | (b[7] << (32 - 6))) ^ (((b[7] & 0xFFFFFFFF) >>> 11) | (b[7] << (32 - 11))) ^ (((b[7] & 0xFFFFFFFF) >>> 25) | (b[7] << (32 - 25)))) >>> 0) + (b[1] ^ (b[7] & (b[0] ^ b[1]))) >>> 0) + 0x4ED8AA4A >>> 0) + (i.setUint32(212, ((((((i.getUint32(212 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(212 - 8) << (32 - 17))) ^ (((i.getUint32(212 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(212 - 8) << (32 - 19))) ^ ((i.getUint32(212 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(212 - 28) >>> 0) + ((((i.getUint32(212 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(212 - 60) << (32 - 7))) ^ (((i.getUint32(212 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(212 - 60) << (32 - 18))) ^ ((i.getUint32(212 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(212 - 64)), i.getUint32(212)); tmp[1] = ((((b[3] & 0xFFFFFFFF) >>> 2) | (b[3] << (32 - 2))) ^ (((b[3] & 0xFFFFFFFF) >>> 13) | (b[3] << (32 - 13))) ^ (((b[3] & 0xFFFFFFFF) >>> 22) | (b[3] << (32 - 22)))) + ((b[3] & b[4]) | (b[5] & (b[3] | b[4]))); b[6] += tmp[0]; b[2] = tmp[0] + tmp[1];
                tmp[0] = (((b[1] + ((((b[6] & 0xFFFFFFFF) >>> 6) | (b[6] << (32 - 6))) ^ (((b[6] & 0xFFFFFFFF) >>> 11) | (b[6] << (32 - 11))) ^ (((b[6] & 0xFFFFFFFF) >>> 25) | (b[6] << (32 - 25)))) >>> 0) + (b[0] ^ (b[6] & (b[7] ^ b[0]))) >>> 0) + 0x5B9CCA4F >>> 0) + (i.setUint32(216, ((((((i.getUint32(216 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(216 - 8) << (32 - 17))) ^ (((i.getUint32(216 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(216 - 8) << (32 - 19))) ^ ((i.getUint32(216 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(216 - 28) >>> 0) + ((((i.getUint32(216 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(216 - 60) << (32 - 7))) ^ (((i.getUint32(216 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(216 - 60) << (32 - 18))) ^ ((i.getUint32(216 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(216 - 64)), i.getUint32(216)); tmp[1] = ((((b[2] & 0xFFFFFFFF) >>> 2) | (b[2] << (32 - 2))) ^ (((b[2] & 0xFFFFFFFF) >>> 13) | (b[2] << (32 - 13))) ^ (((b[2] & 0xFFFFFFFF) >>> 22) | (b[2] << (32 - 22)))) + ((b[2] & b[3]) | (b[4] & (b[2] | b[3]))); b[5] += tmp[0]; b[1] = tmp[0] + tmp[1];
                tmp[0] = (((b[0] + ((((b[5] & 0xFFFFFFFF) >>> 6) | (b[5] << (32 - 6))) ^ (((b[5] & 0xFFFFFFFF) >>> 11) | (b[5] << (32 - 11))) ^ (((b[5] & 0xFFFFFFFF) >>> 25) | (b[5] << (32 - 25)))) >>> 0) + (b[7] ^ (b[5] & (b[6] ^ b[7]))) >>> 0) + 0x682E6FF3 >>> 0) + (i.setUint32(220, ((((((i.getUint32(220 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(220 - 8) << (32 - 17))) ^ (((i.getUint32(220 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(220 - 8) << (32 - 19))) ^ ((i.getUint32(220 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(220 - 28) >>> 0) + ((((i.getUint32(220 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(220 - 60) << (32 - 7))) ^ (((i.getUint32(220 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(220 - 60) << (32 - 18))) ^ ((i.getUint32(220 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(220 - 64)), i.getUint32(220)); tmp[1] = ((((b[1] & 0xFFFFFFFF) >>> 2) | (b[1] << (32 - 2))) ^ (((b[1] & 0xFFFFFFFF) >>> 13) | (b[1] << (32 - 13))) ^ (((b[1] & 0xFFFFFFFF) >>> 22) | (b[1] << (32 - 22)))) + ((b[1] & b[2]) | (b[3] & (b[1] | b[2]))); b[4] += tmp[0]; b[0] = tmp[0] + tmp[1];
                tmp[0] = (((b[7] + ((((b[4] & 0xFFFFFFFF) >>> 6) | (b[4] << (32 - 6))) ^ (((b[4] & 0xFFFFFFFF) >>> 11) | (b[4] << (32 - 11))) ^ (((b[4] & 0xFFFFFFFF) >>> 25) | (b[4] << (32 - 25)))) >>> 0) + (b[6] ^ (b[4] & (b[5] ^ b[6]))) >>> 0) + 0x748F82EE >>> 0) + (i.setUint32(224, ((((((i.getUint32(224 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(224 - 8) << (32 - 17))) ^ (((i.getUint32(224 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(224 - 8) << (32 - 19))) ^ ((i.getUint32(224 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(224 - 28) >>> 0) + ((((i.getUint32(224 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(224 - 60) << (32 - 7))) ^ (((i.getUint32(224 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(224 - 60) << (32 - 18))) ^ ((i.getUint32(224 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(224 - 64)), i.getUint32(224)); tmp[1] = ((((b[0] & 0xFFFFFFFF) >>> 2) | (b[0] << (32 - 2))) ^ (((b[0] & 0xFFFFFFFF) >>> 13) | (b[0] << (32 - 13))) ^ (((b[0] & 0xFFFFFFFF) >>> 22) | (b[0] << (32 - 22)))) + ((b[0] & b[1]) | (b[2] & (b[0] | b[1]))); b[3] += tmp[0]; b[7] = tmp[0] + tmp[1];
                tmp[0] = (((b[6] + ((((b[3] & 0xFFFFFFFF) >>> 6) | (b[3] << (32 - 6))) ^ (((b[3] & 0xFFFFFFFF) >>> 11) | (b[3] << (32 - 11))) ^ (((b[3] & 0xFFFFFFFF) >>> 25) | (b[3] << (32 - 25)))) >>> 0) + (b[5] ^ (b[3] & (b[4] ^ b[5]))) >>> 0) + 0x78A5636F >>> 0) + (i.setUint32(228, ((((((i.getUint32(228 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(228 - 8) << (32 - 17))) ^ (((i.getUint32(228 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(228 - 8) << (32 - 19))) ^ ((i.getUint32(228 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(228 - 28) >>> 0) + ((((i.getUint32(228 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(228 - 60) << (32 - 7))) ^ (((i.getUint32(228 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(228 - 60) << (32 - 18))) ^ ((i.getUint32(228 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(228 - 64)), i.getUint32(228)); tmp[1] = ((((b[7] & 0xFFFFFFFF) >>> 2) | (b[7] << (32 - 2))) ^ (((b[7] & 0xFFFFFFFF) >>> 13) | (b[7] << (32 - 13))) ^ (((b[7] & 0xFFFFFFFF) >>> 22) | (b[7] << (32 - 22)))) + ((b[7] & b[0]) | (b[1] & (b[7] | b[0]))); b[2] += tmp[0]; b[6] = tmp[0] + tmp[1];
                tmp[0] = (((b[5] + ((((b[2] & 0xFFFFFFFF) >>> 6) | (b[2] << (32 - 6))) ^ (((b[2] & 0xFFFFFFFF) >>> 11) | (b[2] << (32 - 11))) ^ (((b[2] & 0xFFFFFFFF) >>> 25) | (b[2] << (32 - 25)))) >>> 0) + (b[4] ^ (b[2] & (b[3] ^ b[4]))) >>> 0) + 0x84C87814 >>> 0) + (i.setUint32(232, ((((((i.getUint32(232 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(232 - 8) << (32 - 17))) ^ (((i.getUint32(232 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(232 - 8) << (32 - 19))) ^ ((i.getUint32(232 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(232 - 28) >>> 0) + ((((i.getUint32(232 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(232 - 60) << (32 - 7))) ^ (((i.getUint32(232 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(232 - 60) << (32 - 18))) ^ ((i.getUint32(232 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(232 - 64)), i.getUint32(232)); tmp[1] = ((((b[6] & 0xFFFFFFFF) >>> 2) | (b[6] << (32 - 2))) ^ (((b[6] & 0xFFFFFFFF) >>> 13) | (b[6] << (32 - 13))) ^ (((b[6] & 0xFFFFFFFF) >>> 22) | (b[6] << (32 - 22)))) + ((b[6] & b[7]) | (b[0] & (b[6] | b[7]))); b[1] += tmp[0]; b[5] = tmp[0] + tmp[1];
                tmp[0] = (((b[4] + ((((b[1] & 0xFFFFFFFF) >>> 6) | (b[1] << (32 - 6))) ^ (((b[1] & 0xFFFFFFFF) >>> 11) | (b[1] << (32 - 11))) ^ (((b[1] & 0xFFFFFFFF) >>> 25) | (b[1] << (32 - 25)))) >>> 0) + (b[3] ^ (b[1] & (b[2] ^ b[3]))) >>> 0) + 0x8CC70208 >>> 0) + (i.setUint32(236, ((((((i.getUint32(236 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(236 - 8) << (32 - 17))) ^ (((i.getUint32(236 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(236 - 8) << (32 - 19))) ^ ((i.getUint32(236 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(236 - 28) >>> 0) + ((((i.getUint32(236 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(236 - 60) << (32 - 7))) ^ (((i.getUint32(236 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(236 - 60) << (32 - 18))) ^ ((i.getUint32(236 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(236 - 64)), i.getUint32(236)); tmp[1] = ((((b[5] & 0xFFFFFFFF) >>> 2) | (b[5] << (32 - 2))) ^ (((b[5] & 0xFFFFFFFF) >>> 13) | (b[5] << (32 - 13))) ^ (((b[5] & 0xFFFFFFFF) >>> 22) | (b[5] << (32 - 22)))) + ((b[5] & b[6]) | (b[7] & (b[5] | b[6]))); b[0] += tmp[0]; b[4] = tmp[0] + tmp[1];
                tmp[0] = (((b[3] + ((((b[0] & 0xFFFFFFFF) >>> 6) | (b[0] << (32 - 6))) ^ (((b[0] & 0xFFFFFFFF) >>> 11) | (b[0] << (32 - 11))) ^ (((b[0] & 0xFFFFFFFF) >>> 25) | (b[0] << (32 - 25)))) >>> 0) + (b[2] ^ (b[0] & (b[1] ^ b[2]))) >>> 0) + 0x90BEFFFA >>> 0) + (i.setUint32(240, ((((((i.getUint32(240 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(240 - 8) << (32 - 17))) ^ (((i.getUint32(240 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(240 - 8) << (32 - 19))) ^ ((i.getUint32(240 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(240 - 28) >>> 0) + ((((i.getUint32(240 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(240 - 60) << (32 - 7))) ^ (((i.getUint32(240 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(240 - 60) << (32 - 18))) ^ ((i.getUint32(240 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(240 - 64)), i.getUint32(240)); tmp[1] = ((((b[4] & 0xFFFFFFFF) >>> 2) | (b[4] << (32 - 2))) ^ (((b[4] & 0xFFFFFFFF) >>> 13) | (b[4] << (32 - 13))) ^ (((b[4] & 0xFFFFFFFF) >>> 22) | (b[4] << (32 - 22)))) + ((b[4] & b[5]) | (b[6] & (b[4] | b[5]))); b[7] += tmp[0]; b[3] = tmp[0] + tmp[1];
                tmp[0] = (((b[2] + ((((b[7] & 0xFFFFFFFF) >>> 6) | (b[7] << (32 - 6))) ^ (((b[7] & 0xFFFFFFFF) >>> 11) | (b[7] << (32 - 11))) ^ (((b[7] & 0xFFFFFFFF) >>> 25) | (b[7] << (32 - 25)))) >>> 0) + (b[1] ^ (b[7] & (b[0] ^ b[1]))) >>> 0) + 0xA4506CEB >>> 0) + (i.setUint32(244, ((((((i.getUint32(244 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(244 - 8) << (32 - 17))) ^ (((i.getUint32(244 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(244 - 8) << (32 - 19))) ^ ((i.getUint32(244 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(244 - 28) >>> 0) + ((((i.getUint32(244 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(244 - 60) << (32 - 7))) ^ (((i.getUint32(244 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(244 - 60) << (32 - 18))) ^ ((i.getUint32(244 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(244 - 64)), i.getUint32(244)); tmp[1] = ((((b[3] & 0xFFFFFFFF) >>> 2) | (b[3] << (32 - 2))) ^ (((b[3] & 0xFFFFFFFF) >>> 13) | (b[3] << (32 - 13))) ^ (((b[3] & 0xFFFFFFFF) >>> 22) | (b[3] << (32 - 22)))) + ((b[3] & b[4]) | (b[5] & (b[3] | b[4]))); b[6] += tmp[0]; b[2] = tmp[0] + tmp[1];
                tmp[0] = (((b[1] + ((((b[6] & 0xFFFFFFFF) >>> 6) | (b[6] << (32 - 6))) ^ (((b[6] & 0xFFFFFFFF) >>> 11) | (b[6] << (32 - 11))) ^ (((b[6] & 0xFFFFFFFF) >>> 25) | (b[6] << (32 - 25)))) >>> 0) + (b[0] ^ (b[6] & (b[7] ^ b[0]))) >>> 0) + 0xBEF9A3F7 >>> 0) + (i.setUint32(248, ((((((i.getUint32(248 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(248 - 8) << (32 - 17))) ^ (((i.getUint32(248 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(248 - 8) << (32 - 19))) ^ ((i.getUint32(248 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(248 - 28) >>> 0) + ((((i.getUint32(248 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(248 - 60) << (32 - 7))) ^ (((i.getUint32(248 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(248 - 60) << (32 - 18))) ^ ((i.getUint32(248 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(248 - 64)), i.getUint32(248)); tmp[1] = ((((b[2] & 0xFFFFFFFF) >>> 2) | (b[2] << (32 - 2))) ^ (((b[2] & 0xFFFFFFFF) >>> 13) | (b[2] << (32 - 13))) ^ (((b[2] & 0xFFFFFFFF) >>> 22) | (b[2] << (32 - 22)))) + ((b[2] & b[3]) | (b[4] & (b[2] | b[3]))); b[5] += tmp[0]; b[1] = tmp[0] + tmp[1];
                tmp[0] = (((b[0] + ((((b[5] & 0xFFFFFFFF) >>> 6) | (b[5] << (32 - 6))) ^ (((b[5] & 0xFFFFFFFF) >>> 11) | (b[5] << (32 - 11))) ^ (((b[5] & 0xFFFFFFFF) >>> 25) | (b[5] << (32 - 25)))) >>> 0) + (b[7] ^ (b[5] & (b[6] ^ b[7]))) >>> 0) + 0xC67178F2 >>> 0) + (i.setUint32(252, ((((((i.getUint32(252 - 8) & 0xFFFFFFFF) >>> 17) | (i.getUint32(252 - 8) << (32 - 17))) ^ (((i.getUint32(252 - 8) & 0xFFFFFFFF) >>> 19) | (i.getUint32(252 - 8) << (32 - 19))) ^ ((i.getUint32(252 - 8) & 0xFFFFFFFF) >>> 10)) + i.getUint32(252 - 28) >>> 0) + ((((i.getUint32(252 - 60) & 0xFFFFFFFF) >>> 7) | (i.getUint32(252 - 60) << (32 - 7))) ^ (((i.getUint32(252 - 60) & 0xFFFFFFFF) >>> 18) | (i.getUint32(252 - 60) << (32 - 18))) ^ ((i.getUint32(252 - 60) & 0xFFFFFFFF) >>> 3)) >>> 0) + i.getUint32(252 - 64)), i.getUint32(252)); tmp[1] = ((((b[1] & 0xFFFFFFFF) >>> 2) | (b[1] << (32 - 2))) ^ (((b[1] & 0xFFFFFFFF) >>> 13) | (b[1] << (32 - 13))) ^ (((b[1] & 0xFFFFFFFF) >>> 22) | (b[1] << (32 - 22)))) + ((b[1] & b[2]) | (b[3] & (b[1] | b[2]))); b[4] += tmp[0]; b[0] = tmp[0] + tmp[1];

                checksum_h[0] += b[0];
                checksum_h[1] += b[1];
                checksum_h[2] += b[2];
                checksum_h[3] += b[3];
                checksum_h[4] += b[4];
                checksum_h[5] += b[5];
                checksum_h[6] += b[6];
                checksum_h[7] += b[7];
        }

        digest = new DataView(new ArrayBuffer(32));
        digest.setUint32(0, checksum_h[0]);
        digest.setUint32(4, checksum_h[1]);
        digest.setUint32(8, checksum_h[2]);
        digest.setUint32(12, checksum_h[3]);
        digest.setUint32(16, checksum_h[4]);
        digest.setUint32(20, checksum_h[5]);
        digest.setUint32(24, checksum_h[6]);
        digest.setUint32(28, checksum_h[7]);

        return new Uint8Array(digest.buffer);
};

var stringToByteArray = function(str) {
    "use strict";

    var array = new Uint8Array(str.length), i, il;

    for (i = 0, il = str.length; i < il; ++i) {
        array[i] = str.charCodeAt(i) & 0xff;
    }

    return array;
};

var string_array = new Uint8Array(stringToByteArray("message digest"));



</script>

Test runner

Ready to run.

Testing in
TestOps/sec
bichlmeier
digest = sha256_digest("message digest");
ready
webtoolkit
digest = SHA256("message digest");
ready
movable-type.co.uk
digest = Sha256.hash("message digest");
ready
crypto-js
digest = CryptoJS.SHA256("message digest");
ready
Poettering
digest = SHA256_hash("message digest");
ready
Weber
digest = $.sha256("message digest");
ready
SHA256_asm
digest = SHA256_asm(string_array.buffer);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.