// Contract: StakingV2
// Target function: function exp(bytes16 x) internal pure returns (bytes16)
000000058B90BFBE8E7BB) >> 128;
            if (xSignifier & 0x40000000000000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000002C5C85FDF473DD) >> 128;
            if (xSignifier & 0x20000000000000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000162E42FEFA39EE) >> 128;
            if (xSignifier & 0x10000000000000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000B17217F7D1CF6) >> 128;
            if (xSignifier & 0x8000000000000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000058B90BFBE8E7A) >> 128;
            if (xSignifier & 0x4000000000000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000002C5C85FDF473C) >> 128;
            if (xSignifier & 0x2000000000000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000162E42FEFA39D) >> 128;
            if (xSignifier & 0x1000000000000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000B17217F7D1CE) >> 128;
            if (xSignifier & 0x800000000000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000058B90BFBE8E6) >> 128;
            if (xSignifier & 0x400000000000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000002C5C85FDF472) >> 128;
            if (xSignifier & 0x200000000000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000162E42FEFA38) >> 128;
            if (xSignifier & 0x100000000000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000B17217F7D1B) >> 128;
            if (xSignifier & 0x80000000000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000058B90BFBE8D) >> 128;
            if (xSignifier & 0x40000000000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000002C5C85FDF46) >> 128;
            if (xSignifier & 0x20000000000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000162E42FEFA2) >> 128;
            if (xSignifier & 0x10000000000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000000B17217F7D0) >> 128;
            if (xSignifier & 0x8000000000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000058B90BFBE7) >> 128;
            if (xSignifier & 0x4000000000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000002C5C85FDF3) >> 128;
            if (xSignifier & 0x2000000000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000000162E42FEF9) >> 128;
            if (xSignifier & 0x1000000000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000000B17217F7C) >> 128;
            if (xSignifier & 0x800000000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000000058B90BFBD) >> 128;
            if (xSignifier & 0x400000000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000002C5C85FDE) >> 128;
            if (xSignifier & 0x200000000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000000162E42FEE) >> 128;
            if (xSignifier & 0x100000000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000000B17217F6) >> 128;
            if (xSignifier & 0x80000000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000000058B90BFA) >> 128;
            if (xSignifier & 0x40000000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000000002C5C85FC) >> 128;
            if (xSignifier & 0x20000000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000000162E42FD) >> 128;
            if (xSignifier & 0x10000000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000000000B17217E) >> 128;
            if (xSignifier & 0x8000000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000000058B90BE) >> 128;
            if (xSignifier & 0x4000000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000000002C5C85E) >> 128;
            if (xSignifier & 0x2000000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000000000162E42E) >> 128;
            if (xSignifier & 0x1000000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000000000B17216) >> 128;
            if (xSignifier & 0x800000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000000000058B90A) >> 128;
            if (xSignifier & 0x400000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000000002C5C84) >> 128;
            if (xSignifier & 0x200000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000000000162E41) >> 128;
            if (xSignifier & 0x100000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000000000B1720) >> 128;
            if (xSignifier & 0x80000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000000000058B8F) >> 128;
            if (xSignifier & 0x40000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000000000002C5C7) >> 128;
            if (xSignifier & 0x20000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000000000162E3) >> 128;
            if (xSignifier & 0x10000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000000000000B171) >> 128;
            if (xSignifier & 0x8000 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000000000058B8) >> 128;
            if (xSignifier & 0x4000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000000000002C5B) >> 128;
            if (xSignifier & 0x2000 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000000000000162D) >> 128;
            if (xSignifier & 0x1000 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000000000000B16) >> 128;
            if (xSignifier & 0x800 > 0)
                resultSignifier = (resultSignifier * 0x10000000000000000000000000000058A) >> 128;
            if (xSignifier & 0x400 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000000000002C4) >> 128;
            if (xSignifier & 0x200 > 0)
                resultSignifier = (resultSignifier * 0x100000000000000000000000000000161) >> 128;
            if (xSignifier & 0x100 > 0)
                resultSignifier = (resultSignifier * 0x1000000000000000000000000000000B0) >> 128;
            if (xSignifier & 0x80 > 0) resultSignifier = (resultSignifier * 0x100000000000000000000000000000057) >> 128;
            if (xSignifier & 0x40 > 0) resultSignifier = (resultSignifier * 0x10000000000000000000000000000002B) >> 128;
            if (xSignifier & 0x20 > 0) resultSignifier = (resultSignifier * 0x100000000000000000000000000000015) >> 128;
            if (xSignifier & 0x10 > 0) resultSignifier = (resultSignifier * 0x10000000000000000000000000000000A) >> 128;
            if (xSignifier & 0x8 > 0) resultSignifier = (resultSignifier * 0x100000000000000000000000000000004) >> 128;
            if (xSignifier & 0x4 > 0) resultSignifier = (resultSignifier * 0x100000000000000000000000000000001) >> 128;

            if (!xNegative) {
                resultSignifier = (resultSignifier >> 15) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
                resultExponent += 0x3FFF;
            } else if (resultExponent <= 0x3FFE) {
                resultSignifier = (resultSignifier >> 15) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
                resultExponent = 0x3FFF - resultExponent;
            } else {
                resultSignifier = resultSignifier >> (resultExponent - 16367);
                resultExponent = 0;
            }

            return bytes16(uint128((resultExponent << 112) | resultSignifier));
        }
    }