{"id":"fcf171f48c6ce468e859994bebda1feb","_format":"hh-sol-build-info-1","solcVersion":"0.7.6","solcLongVersion":"0.7.6+commit.7338295f","input":{"language":"Solidity","sources":{"contracts/core/interfaces/IAstraCallee.sol":{"content":"pragma solidity >=0.5.0;\n\ninterface IAstraCallee {\n    function astraCall(address sender, uint amount0, uint amount1, bytes calldata data) external;\n}\n"},"contracts/core/interfaces/IAstraERC20.sol":{"content":"pragma solidity >=0.5.0;\n\ninterface IAstraERC20 {\n    event Approval(address indexed owner, address indexed spender, uint value);\n    event Transfer(address indexed from, address indexed to, uint value);\n\n    function name() external pure returns (string memory);\n    function symbol() external pure returns (string memory);\n    function decimals() external pure returns (uint8);\n    function totalSupply() external view returns (uint);\n    function balanceOf(address owner) external view returns (uint);\n    function allowance(address owner, address spender) external view returns (uint);\n\n    function approve(address spender, uint value) external returns (bool);\n    function transfer(address to, uint value) external returns (bool);\n    function transferFrom(address from, address to, uint value) external returns (bool);\n\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n    function PERMIT_TYPEHASH() external pure returns (bytes32);\n    function nonces(address owner) external view returns (uint);\n\n    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;\n}\n"},"contracts/core/interfaces/IAstraFactory.sol":{"content":"pragma solidity >=0.5.0;\n\ninterface IAstraFactory {\n    event PairCreated(address indexed token0, address indexed token1, address pair, uint);\n\n    function feeTo() external view returns (address);\n    function feeToSetter() external view returns (address);\n\n    function getPair(address tokenA, address tokenB) external view returns (address pair);\n    function allPairs(uint) external view returns (address pair);\n    function allPairsLength() external view returns (uint);\n\n    function createPair(address tokenA, address tokenB) external returns (address pair);\n\n    function setFeeTo(address) external;\n    function setFeeToSetter(address) external;\n}\n"},"contracts/core/interfaces/IAstraPair.sol":{"content":"pragma solidity >=0.5.0;\n\ninterface IAstraPair {\n    event Approval(address indexed owner, address indexed spender, uint value);\n    event Transfer(address indexed from, address indexed to, uint value);\n\n    function name() external pure returns (string memory);\n    function symbol() external pure returns (string memory);\n    function decimals() external pure returns (uint8);\n    function totalSupply() external view returns (uint);\n    function balanceOf(address owner) external view returns (uint);\n    function allowance(address owner, address spender) external view returns (uint);\n\n    function approve(address spender, uint value) external returns (bool);\n    function transfer(address to, uint value) external returns (bool);\n    function transferFrom(address from, address to, uint value) external returns (bool);\n\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n    function PERMIT_TYPEHASH() external pure returns (bytes32);\n    function nonces(address owner) external view returns (uint);\n\n    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;\n\n    event Mint(address indexed sender, uint amount0, uint amount1);\n    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);\n    event Swap(\n        address indexed sender,\n        uint amount0In,\n        uint amount1In,\n        uint amount0Out,\n        uint amount1Out,\n        address indexed to\n    );\n    event Sync(uint112 reserve0, uint112 reserve1);\n\n    function MINIMUM_LIQUIDITY() external pure returns (uint);\n    function factory() external view returns (address);\n    function token0() external view returns (address);\n    function token1() external view returns (address);\n    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\n    function price0CumulativeLast() external view returns (uint);\n    function price1CumulativeLast() external view returns (uint);\n    function kLast() external view returns (uint);\n\n    function mint(address to) external returns (uint liquidity);\n    function burn(address to) external returns (uint amount0, uint amount1);\n    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;\n    function skim(address to) external;\n    function sync() external;\n\n    function initialize(address, address) external;\n}\n"},"contracts/core/interfaces/IERC20.sol":{"content":"pragma solidity >=0.5.0;\n\ninterface IERC20 {\n    event Approval(address indexed owner, address indexed spender, uint value);\n    event Transfer(address indexed from, address indexed to, uint value);\n\n    function name() external view returns (string memory);\n    function symbol() external view returns (string memory);\n    function decimals() external view returns (uint8);\n    function totalSupply() external view returns (uint);\n    function balanceOf(address owner) external view returns (uint);\n    function allowance(address owner, address spender) external view returns (uint);\n\n    function approve(address spender, uint value) external returns (bool);\n    function transfer(address to, uint value) external returns (bool);\n    function transferFrom(address from, address to, uint value) external returns (bool);\n}\n"},"contracts/periphery/interfaces/IAstraMigrator.sol":{"content":"pragma solidity >=0.5.0;\n\ninterface IAstraMigrator {\n    function migrate(address token, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external;\n}\n"},"contracts/periphery/interfaces/IAstraRouter01.sol":{"content":"pragma solidity >=0.6.2;\n\ninterface IAstraRouter01 {\n    function factory() external pure returns (address);\n\n    function SAMB() external pure returns (address);\n\n    function addLiquidity(\n        address tokenA,\n        address tokenB,\n        uint256 amountADesired,\n        uint256 amountBDesired,\n        uint256 amountAMin,\n        uint256 amountBMin,\n        address to,\n        uint256 deadline\n    )\n        external\n        returns (\n            uint256 amountA,\n            uint256 amountB,\n            uint256 liquidity\n        );\n\n    function addLiquidityAMB(\n        address token,\n        uint256 amountTokenDesired,\n        uint256 amountTokenMin,\n        uint256 amountAMBMin,\n        address to,\n        uint256 deadline\n    )\n        external\n        payable\n        returns (\n            uint256 amountToken,\n            uint256 amountAMB,\n            uint256 liquidity\n        );\n\n    function removeLiquidity(\n        address tokenA,\n        address tokenB,\n        uint256 liquidity,\n        uint256 amountAMin,\n        uint256 amountBMin,\n        address to,\n        uint256 deadline\n    ) external returns (uint256 amountA, uint256 amountB);\n\n    function removeLiquidityAMB(\n        address token,\n        uint256 liquidity,\n        uint256 amountTokenMin,\n        uint256 amountAMBMin,\n        address to,\n        uint256 deadline\n    ) external returns (uint256 amountToken, uint256 amountAMB);\n\n    function removeLiquidityWithPermit(\n        address tokenA,\n        address tokenB,\n        uint256 liquidity,\n        uint256 amountAMin,\n        uint256 amountBMin,\n        address to,\n        uint256 deadline,\n        bool approveMax,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external returns (uint256 amountA, uint256 amountB);\n\n    function removeLiquidityAMBWithPermit(\n        address token,\n        uint256 liquidity,\n        uint256 amountTokenMin,\n        uint256 amountAMBMin,\n        address to,\n        uint256 deadline,\n        bool approveMax,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external returns (uint256 amountToken, uint256 amountAMB);\n\n    function swapExactTokensForTokens(\n        uint256 amountIn,\n        uint256 amountOutMin,\n        address[] calldata path,\n        address to,\n        uint256 deadline\n    ) external returns (uint256[] memory amounts);\n\n    function swapTokensForExactTokens(\n        uint256 amountOut,\n        uint256 amountInMax,\n        address[] calldata path,\n        address to,\n        uint256 deadline\n    ) external returns (uint256[] memory amounts);\n\n    function swapExactAMBForTokens(\n        uint256 amountOutMin,\n        address[] calldata path,\n        address to,\n        uint256 deadline\n    ) external payable returns (uint256[] memory amounts);\n\n    function swapTokensForExactAMB(\n        uint256 amountOut,\n        uint256 amountInMax,\n        address[] calldata path,\n        address to,\n        uint256 deadline\n    ) external returns (uint256[] memory amounts);\n\n    function swapExactTokensForAMB(\n        uint256 amountIn,\n        uint256 amountOutMin,\n        address[] calldata path,\n        address to,\n        uint256 deadline\n    ) external returns (uint256[] memory amounts);\n\n    function swapAMBForExactTokens(\n        uint256 amountOut,\n        address[] calldata path,\n        address to,\n        uint256 deadline\n    ) external payable returns (uint256[] memory amounts);\n\n    function quote(\n        uint256 amountA,\n        uint256 reserveA,\n        uint256 reserveB\n    ) external pure returns (uint256 amountB);\n\n    function getAmountOut(\n        uint256 amountIn,\n        uint256 reserveIn,\n        uint256 reserveOut\n    ) external pure returns (uint256 amountOut);\n\n    function getAmountIn(\n        uint256 amountOut,\n        uint256 reserveIn,\n        uint256 reserveOut\n    ) external pure returns (uint256 amountIn);\n\n    function getAmountsOut(uint256 amountIn, address[] calldata path)\n        external\n        view\n        returns (uint256[] memory amounts);\n\n    function getAmountsIn(uint256 amountOut, address[] calldata path)\n        external\n        view\n        returns (uint256[] memory amounts);\n}\n"},"contracts/periphery/interfaces/IAstraRouter02.sol":{"content":"pragma solidity >=0.6.2;\n\nimport \"./IAstraRouter01.sol\";\n\ninterface IAstraRouter02 is IAstraRouter01 {\n    function removeLiquidityAMBSupportingFeeOnTransferTokens(\n        address token,\n        uint256 liquidity,\n        uint256 amountTokenMin,\n        uint256 amountAMBMin,\n        address to,\n        uint256 deadline\n    ) external returns (uint256 amountAMB);\n\n    function removeLiquidityAMBWithPermitSupportingFeeOnTransferTokens(\n        address token,\n        uint256 liquidity,\n        uint256 amountTokenMin,\n        uint256 amountAMBMin,\n        address to,\n        uint256 deadline,\n        bool approveMax,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external returns (uint256 amountAMB);\n\n    function swapExactTokensForTokensSupportingFeeOnTransferTokens(\n        uint256 amountIn,\n        uint256 amountOutMin,\n        address[] calldata path,\n        address to,\n        uint256 deadline\n    ) external;\n\n    function swapExactAMBForTokensSupportingFeeOnTransferTokens(\n        uint256 amountOutMin,\n        address[] calldata path,\n        address to,\n        uint256 deadline\n    ) external payable;\n\n    function swapExactTokensForAMBSupportingFeeOnTransferTokens(\n        uint256 amountIn,\n        uint256 amountOutMin,\n        address[] calldata path,\n        address to,\n        uint256 deadline\n    ) external;\n}\n"},"contracts/periphery/interfaces/IERC20.sol":{"content":"pragma solidity >=0.5.0;\n\ninterface IERC20 {\n    event Approval(address indexed owner, address indexed spender, uint value);\n    event Transfer(address indexed from, address indexed to, uint value);\n\n    function name() external view returns (string memory);\n    function symbol() external view returns (string memory);\n    function decimals() external view returns (uint8);\n    function totalSupply() external view returns (uint);\n    function balanceOf(address owner) external view returns (uint);\n    function allowance(address owner, address spender) external view returns (uint);\n\n    function approve(address spender, uint value) external returns (bool);\n    function transfer(address to, uint value) external returns (bool);\n    function transferFrom(address from, address to, uint value) external returns (bool);\n}\n"},"contracts/periphery/interfaces/ISAMB.sol":{"content":"pragma solidity >=0.5.0;\n\ninterface ISAMB {\n    function deposit() external payable;\n    function transfer(address to, uint value) external returns (bool);\n    function withdraw(uint) external;\n}\n"},"contracts/periphery/interfaces/V1/IAstraV1Exchange.sol":{"content":"pragma solidity >=0.5.0;\n\ninterface IAstraV1Exchange {\n    function balanceOf(address owner) external view returns (uint);\n    function transferFrom(address from, address to, uint value) external returns (bool);\n    function removeLiquidity(uint, uint, uint, uint) external returns (uint, uint);\n    function tokenToAMBSwapInput(uint, uint, uint) external returns (uint);\n    function AMBToTokenSwapInput(uint, uint) external payable returns (uint);\n}\n"},"contracts/periphery/interfaces/V1/IAstraV1Factory.sol":{"content":"pragma solidity >=0.5.0;\n\ninterface IAstraV1Factory {\n    function getExchange(address) external view returns (address);\n}\n"},"contracts/periphery/libraries/AstraOracleLibrary.sol":{"content":"pragma solidity >=0.5.0;\n\nimport '../../core/interfaces/IAstraPair.sol';\nimport './FixedPoint.sol';\n\n// library with helper methods for oracles that are concerned with computing average prices\nlibrary AstraOracleLibrary {\n    using FixedPoint for *;\n\n    // helper function that returns the current block timestamp within the range of uint32, i.e. [0, 2**32 - 1]\n    function currentBlockTimestamp() internal view returns (uint32) {\n        return uint32(block.timestamp % 2 ** 32);\n    }\n\n    // produces the cumulative price using counterfactuals to save gas and avoid a call to sync.\n    function currentCumulativePrices(\n        address pair\n    ) internal view returns (uint price0Cumulative, uint price1Cumulative, uint32 blockTimestamp) {\n        blockTimestamp = currentBlockTimestamp();\n        price0Cumulative = IAstraPair(pair).price0CumulativeLast();\n        price1Cumulative = IAstraPair(pair).price1CumulativeLast();\n\n        // if time has elapsed since the last update on the pair, mock the accumulated price values\n        (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast) = IAstraPair(pair).getReserves();\n        if (blockTimestampLast != blockTimestamp) {\n            // subtraction overflow is desired\n            uint32 timeElapsed = blockTimestamp - blockTimestampLast;\n            // addition overflow is desired\n            // counterfactual\n            price0Cumulative += uint(FixedPoint.fraction(reserve1, reserve0)._x) * timeElapsed;\n            // counterfactual\n            price1Cumulative += uint(FixedPoint.fraction(reserve0, reserve1)._x) * timeElapsed;\n        }\n    }\n}\n"},"contracts/periphery/libraries/Babylonian.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity >=0.4.0;\n\n// computes square roots using the babylonian method\n// https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method\nlibrary Babylonian {\n    // credit for this implementation goes to\n    // https://github.com/abdk-consulting/abdk-libraries-solidity/blob/master/ABDKMath64x64.sol#L687\n    function sqrt(uint256 x) internal pure returns (uint256) {\n        if (x == 0) return 0;\n        // this block is equivalent to r = uint256(1) << (BitMath.mostSignificantBit(x) / 2);\n        // however that code costs significantly more gas\n        uint256 xx = x;\n        uint256 r = 1;\n        if (xx >= 0x100000000000000000000000000000000) {\n            xx >>= 128;\n            r <<= 64;\n        }\n        if (xx >= 0x10000000000000000) {\n            xx >>= 64;\n            r <<= 32;\n        }\n        if (xx >= 0x100000000) {\n            xx >>= 32;\n            r <<= 16;\n        }\n        if (xx >= 0x10000) {\n            xx >>= 16;\n            r <<= 8;\n        }\n        if (xx >= 0x100) {\n            xx >>= 8;\n            r <<= 4;\n        }\n        if (xx >= 0x10) {\n            xx >>= 4;\n            r <<= 2;\n        }\n        if (xx >= 0x8) {\n            r <<= 1;\n        }\n        r = (r + x / r) >> 1;\n        r = (r + x / r) >> 1;\n        r = (r + x / r) >> 1;\n        r = (r + x / r) >> 1;\n        r = (r + x / r) >> 1;\n        r = (r + x / r) >> 1;\n        r = (r + x / r) >> 1; // Seven iterations should be enough\n        uint256 r1 = x / r;\n        return (r < r1 ? r : r1);\n    }\n}\n"},"contracts/periphery/libraries/BitMath.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity >=0.5.0;\n\nlibrary BitMath {\n    // returns the 0 indexed position of the most significant bit of the input x\n    // s.t. x >= 2**msb and x < 2**(msb+1)\n    function mostSignificantBit(uint256 x) internal pure returns (uint8 r) {\n        require(x > 0, 'BitMath::mostSignificantBit: zero');\n\n        if (x >= 0x100000000000000000000000000000000) {\n            x >>= 128;\n            r += 128;\n        }\n        if (x >= 0x10000000000000000) {\n            x >>= 64;\n            r += 64;\n        }\n        if (x >= 0x100000000) {\n            x >>= 32;\n            r += 32;\n        }\n        if (x >= 0x10000) {\n            x >>= 16;\n            r += 16;\n        }\n        if (x >= 0x100) {\n            x >>= 8;\n            r += 8;\n        }\n        if (x >= 0x10) {\n            x >>= 4;\n            r += 4;\n        }\n        if (x >= 0x4) {\n            x >>= 2;\n            r += 2;\n        }\n        if (x >= 0x2) r += 1;\n    }\n\n    // returns the 0 indexed position of the least significant bit of the input x\n    // s.t. (x & 2**lsb) != 0 and (x & (2**(lsb) - 1)) == 0)\n    // i.e. the bit at the index is set and the mask of all lower bits is 0\n    function leastSignificantBit(uint256 x) internal pure returns (uint8 r) {\n        require(x > 0, 'BitMath::leastSignificantBit: zero');\n\n        r = 255;\n        if (x & uint128(-1) > 0) {\n            r -= 128;\n        } else {\n            x >>= 128;\n        }\n        if (x & uint64(-1) > 0) {\n            r -= 64;\n        } else {\n            x >>= 64;\n        }\n        if (x & uint32(-1) > 0) {\n            r -= 32;\n        } else {\n            x >>= 32;\n        }\n        if (x & uint16(-1) > 0) {\n            r -= 16;\n        } else {\n            x >>= 16;\n        }\n        if (x & uint8(-1) > 0) {\n            r -= 8;\n        } else {\n            x >>= 8;\n        }\n        if (x & 0xf > 0) {\n            r -= 4;\n        } else {\n            x >>= 4;\n        }\n        if (x & 0x3 > 0) {\n            r -= 2;\n        } else {\n            x >>= 2;\n        }\n        if (x & 0x1 > 0) r -= 1;\n    }\n}\n"},"contracts/periphery/libraries/FixedPoint.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity >=0.4.0;\n\nimport './FullMath.sol';\nimport \"../../periphery/libraries/Babylonian.sol\";\nimport './BitMath.sol';\n\n// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))\nlibrary FixedPoint {\n    // range: [0, 2**112 - 1]\n    // resolution: 1 / 2**112\n    struct uq112x112 {\n        uint224 _x;\n    }\n\n    // range: [0, 2**144 - 1]\n    // resolution: 1 / 2**112\n    struct uq144x112 {\n        uint256 _x;\n    }\n\n    uint8 public constant RESOLUTION = 112;\n    uint256 public constant Q112 = 0x10000000000000000000000000000; // 2**112\n    uint256 private constant Q224 = 0x100000000000000000000000000000000000000000000000000000000; // 2**224\n    uint256 private constant LOWER_MASK = 0xffffffffffffffffffffffffffff; // decimal of UQ*x112 (lower 112 bits)\n\n    // encode a uint112 as a UQ112x112\n    function encode(uint112 x) internal pure returns (uq112x112 memory) {\n        return uq112x112(uint224(x) << RESOLUTION);\n    }\n\n    // encodes a uint144 as a UQ144x112\n    function encode144(uint144 x) internal pure returns (uq144x112 memory) {\n        return uq144x112(uint256(x) << RESOLUTION);\n    }\n\n    // decode a UQ112x112 into a uint112 by truncating after the radix point\n    function decode(uq112x112 memory self) internal pure returns (uint112) {\n        return uint112(self._x >> RESOLUTION);\n    }\n\n    // decode a UQ144x112 into a uint144 by truncating after the radix point\n    function decode144(uq144x112 memory self) internal pure returns (uint144) {\n        return uint144(self._x >> RESOLUTION);\n    }\n\n    // multiply a UQ112x112 by a uint, returning a UQ144x112\n    // reverts on overflow\n    function mul(uq112x112 memory self, uint256 y) internal pure returns (uq144x112 memory) {\n        uint256 z = 0;\n        require(y == 0 || (z = self._x * y) / y == self._x, 'FixedPoint::mul: overflow');\n        return uq144x112(z);\n    }\n\n    // multiply a UQ112x112 by an int and decode, returning an int\n    // reverts on overflow\n    function muli(uq112x112 memory self, int256 y) internal pure returns (int256) {\n        uint256 z = FullMath.mulDiv(self._x, uint256(y < 0 ? -y : y), Q112);\n        require(z < 2**255, 'FixedPoint::muli: overflow');\n        return y < 0 ? -int256(z) : int256(z);\n    }\n\n    // multiply a UQ112x112 by a UQ112x112, returning a UQ112x112\n    // lossy\n    function muluq(uq112x112 memory self, uq112x112 memory other) internal pure returns (uq112x112 memory) {\n        if (self._x == 0 || other._x == 0) {\n            return uq112x112(0);\n        }\n        uint112 upper_self = uint112(self._x >> RESOLUTION); // * 2^0\n        uint112 lower_self = uint112(self._x & LOWER_MASK); // * 2^-112\n        uint112 upper_other = uint112(other._x >> RESOLUTION); // * 2^0\n        uint112 lower_other = uint112(other._x & LOWER_MASK); // * 2^-112\n\n        // partial products\n        uint224 upper = uint224(upper_self) * upper_other; // * 2^0\n        uint224 lower = uint224(lower_self) * lower_other; // * 2^-224\n        uint224 uppers_lowero = uint224(upper_self) * lower_other; // * 2^-112\n        uint224 uppero_lowers = uint224(upper_other) * lower_self; // * 2^-112\n\n        // so the bit shift does not overflow\n        require(upper <= uint112(-1), 'FixedPoint::muluq: upper overflow');\n\n        // this cannot exceed 256 bits, all values are 224 bits\n        uint256 sum = uint256(upper << RESOLUTION) + uppers_lowero + uppero_lowers + (lower >> RESOLUTION);\n\n        // so the cast does not overflow\n        require(sum <= uint224(-1), 'FixedPoint::muluq: sum overflow');\n\n        return uq112x112(uint224(sum));\n    }\n\n    // divide a UQ112x112 by a UQ112x112, returning a UQ112x112\n    function divuq(uq112x112 memory self, uq112x112 memory other) internal pure returns (uq112x112 memory) {\n        require(other._x > 0, 'FixedPoint::divuq: division by zero');\n        if (self._x == other._x) {\n            return uq112x112(uint224(Q112));\n        }\n        if (self._x <= uint144(-1)) {\n            uint256 value = (uint256(self._x) << RESOLUTION) / other._x;\n            require(value <= uint224(-1), 'FixedPoint::divuq: overflow');\n            return uq112x112(uint224(value));\n        }\n\n        uint256 result = FullMath.mulDiv(Q112, self._x, other._x);\n        require(result <= uint224(-1), 'FixedPoint::divuq: overflow');\n        return uq112x112(uint224(result));\n    }\n\n    // returns a UQ112x112 which represents the ratio of the numerator to the denominator\n    // can be lossy\n    function fraction(uint256 numerator, uint256 denominator) internal pure returns (uq112x112 memory) {\n        require(denominator > 0, 'FixedPoint::fraction: division by zero');\n        if (numerator == 0) return FixedPoint.uq112x112(0);\n\n        if (numerator <= uint144(-1)) {\n            uint256 result = (numerator << RESOLUTION) / denominator;\n            require(result <= uint224(-1), 'FixedPoint::fraction: overflow');\n            return uq112x112(uint224(result));\n        } else {\n            uint256 result = FullMath.mulDiv(numerator, Q112, denominator);\n            require(result <= uint224(-1), 'FixedPoint::fraction: overflow');\n            return uq112x112(uint224(result));\n        }\n    }\n\n    // take the reciprocal of a UQ112x112\n    // reverts on overflow\n    // lossy\n    function reciprocal(uq112x112 memory self) internal pure returns (uq112x112 memory) {\n        require(self._x != 0, 'FixedPoint::reciprocal: reciprocal of zero');\n        require(self._x != 1, 'FixedPoint::reciprocal: overflow');\n        return uq112x112(uint224(Q224 / self._x));\n    }\n\n    // square root of a UQ112x112\n    // lossy between 0/1 and 40 bits\n    function sqrt(uq112x112 memory self) internal pure returns (uq112x112 memory) {\n        if (self._x <= uint144(-1)) {\n            return uq112x112(uint224(Babylonian.sqrt(uint256(self._x) << 112)));\n        }\n\n        uint8 safeShiftBits = 255 - BitMath.mostSignificantBit(self._x);\n        safeShiftBits -= safeShiftBits % 2;\n        return uq112x112(uint224(Babylonian.sqrt(uint256(self._x) << safeShiftBits) << ((112 - safeShiftBits) / 2)));\n    }\n}\n"},"contracts/periphery/libraries/FullMath.sol":{"content":"// SPDX-License-Identifier: CC-BY-4.0\npragma solidity >=0.4.0;\n\n// taken from https://medium.com/coinmonks/math-in-solidity-part-3-percents-and-proportions-4db014e080b1\n// license is CC-BY-4.0\nlibrary FullMath {\n    function fullMul(uint256 x, uint256 y) internal pure returns (uint256 l, uint256 h) {\n        uint256 mm = mulmod(x, y, uint256(-1));\n        l = x * y;\n        h = mm - l;\n        if (mm < l) h -= 1;\n    }\n\n    function fullDiv(\n        uint256 l,\n        uint256 h,\n        uint256 d\n    ) private pure returns (uint256) {\n        uint256 pow2 = d & -d;\n        d /= pow2;\n        l /= pow2;\n        l += h * ((-pow2) / pow2 + 1);\n        uint256 r = 1;\n        r *= 2 - d * r;\n        r *= 2 - d * r;\n        r *= 2 - d * r;\n        r *= 2 - d * r;\n        r *= 2 - d * r;\n        r *= 2 - d * r;\n        r *= 2 - d * r;\n        r *= 2 - d * r;\n        return l * r;\n    }\n\n    function mulDiv(\n        uint256 x,\n        uint256 y,\n        uint256 d\n    ) internal pure returns (uint256) {\n        (uint256 l, uint256 h) = fullMul(x, y);\n\n        uint256 mm = mulmod(x, y, d);\n        if (mm > l) h -= 1;\n        l -= mm;\n\n        if (h == 0) return l / d;\n\n        require(h < d, 'FullMath: FULLDIV_OVERFLOW');\n        return fullDiv(l, h, d);\n    }\n}\n"},"contracts/periphery/libraries/TransferHelper.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity >=0.6.0;\n\n// helper methods for interacting with ERC20 tokens and sending AMB that do not consistently return true/false\nlibrary TransferHelper {\n    function safeApprove(\n        address token,\n        address to,\n        uint256 value\n    ) internal {\n        // bytes4(keccak256(bytes('approve(address,uint256)')));\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            'TransferHelper::safeApprove: approve failed'\n        );\n    }\n\n    function safeTransfer(\n        address token,\n        address to,\n        uint256 value\n    ) internal {\n        // bytes4(keccak256(bytes('transfer(address,uint256)')));\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            'TransferHelper::safeTransfer: transfer failed'\n        );\n    }\n\n    function safeTransferFrom(\n        address token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            'TransferHelper::transferFrom: transferFrom failed'\n        );\n    }\n\n    function safeTransferAMB(address to, uint256 value) internal {\n        (bool success, ) = to.call{value: value}(new bytes(0));\n        require(success, 'TransferHelper::safeTransferAMB: AMB transfer failed');\n    }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"evmVersion":"petersburg","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"1878","formattedMessage":"contracts/core/interfaces/IAstraCallee.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/core/interfaces/IAstraCallee.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/core/interfaces/IAstraERC20.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/core/interfaces/IAstraERC20.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/core/interfaces/IAstraFactory.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/core/interfaces/IAstraFactory.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/core/interfaces/IAstraPair.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/core/interfaces/IAstraPair.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/core/interfaces/IERC20.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/core/interfaces/IERC20.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/periphery/interfaces/IAstraMigrator.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/periphery/interfaces/IAstraMigrator.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/periphery/interfaces/IAstraRouter01.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/periphery/interfaces/IAstraRouter01.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/periphery/interfaces/IAstraRouter02.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/periphery/interfaces/IAstraRouter02.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/periphery/interfaces/IERC20.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/periphery/interfaces/IERC20.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/periphery/interfaces/ISAMB.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/periphery/interfaces/ISAMB.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/periphery/interfaces/V1/IAstraV1Exchange.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/periphery/interfaces/V1/IAstraV1Exchange.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/periphery/interfaces/V1/IAstraV1Factory.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/periphery/interfaces/V1/IAstraV1Factory.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"1878","formattedMessage":"contracts/periphery/libraries/AstraOracleLibrary.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/periphery/libraries/AstraOracleLibrary.sol","start":-1},"type":"Warning"}],"sources":{"contracts/core/interfaces/IAstraCallee.sol":{"ast":{"absolutePath":"contracts/core/interfaces/IAstraCallee.sol","exportedSymbols":{"IAstraCallee":[13]},"id":14,"nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:0"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":13,"linearizedBaseContracts":[13],"name":"IAstraCallee","nodeType":"ContractDefinition","nodes":[{"functionSelector":"ee906f6b","id":12,"implemented":false,"kind":"function","modifiers":[],"name":"astraCall","nodeType":"FunctionDefinition","parameters":{"id":10,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":12,"src":"74:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2,"name":"address","nodeType":"ElementaryTypeName","src":"74:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":12,"src":"90:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4,"name":"uint","nodeType":"ElementaryTypeName","src":"90:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":12,"src":"104:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint","nodeType":"ElementaryTypeName","src":"104:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","scope":12,"src":"118:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8,"name":"bytes","nodeType":"ElementaryTypeName","src":"118:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"73:65:0"},"returnParameters":{"id":11,"nodeType":"ParameterList","parameters":[],"src":"147:0:0"},"scope":13,"src":"55:93:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":14,"src":"26:124:0"}],"src":"0:151:0"},"id":0},"contracts/core/interfaces/IAstraERC20.sol":{"ast":{"absolutePath":"contracts/core/interfaces/IAstraERC20.sol","exportedSymbols":{"IAstraERC20":[131]},"id":132,"nodeType":"SourceUnit","nodes":[{"id":15,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:1"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":131,"linearizedBaseContracts":[131],"name":"IAstraERC20","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":23,"name":"Approval","nodeType":"EventDefinition","parameters":{"id":22,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17,"indexed":true,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":23,"src":"69:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"69:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19,"indexed":true,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":23,"src":"92:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18,"name":"address","nodeType":"ElementaryTypeName","src":"92:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":23,"src":"117:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20,"name":"uint","nodeType":"ElementaryTypeName","src":"117:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68:60:1"},"src":"54:75:1"},{"anonymous":false,"id":31,"name":"Transfer","nodeType":"EventDefinition","parameters":{"id":30,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25,"indexed":true,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","scope":31,"src":"149:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"149:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":31,"src":"171:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26,"name":"address","nodeType":"ElementaryTypeName","src":"171:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":31,"src":"191:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28,"name":"uint","nodeType":"ElementaryTypeName","src":"191:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"148:54:1"},"src":"134:69:1"},{"functionSelector":"06fdde03","id":36,"implemented":false,"kind":"function","modifiers":[],"name":"name","nodeType":"FunctionDefinition","parameters":{"id":32,"nodeType":"ParameterList","parameters":[],"src":"222:2:1"},"returnParameters":{"id":35,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":36,"src":"248:13:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33,"name":"string","nodeType":"ElementaryTypeName","src":"248:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"247:15:1"},"scope":131,"src":"209:54:1","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":41,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nodeType":"FunctionDefinition","parameters":{"id":37,"nodeType":"ParameterList","parameters":[],"src":"283:2:1"},"returnParameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":41,"src":"309:13:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38,"name":"string","nodeType":"ElementaryTypeName","src":"309:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"308:15:1"},"scope":131,"src":"268:56:1","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":46,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nodeType":"FunctionDefinition","parameters":{"id":42,"nodeType":"ParameterList","parameters":[],"src":"346:2:1"},"returnParameters":{"id":45,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":46,"src":"372:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43,"name":"uint8","nodeType":"ElementaryTypeName","src":"372:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"371:7:1"},"scope":131,"src":"329:50:1","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":51,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","parameters":{"id":47,"nodeType":"ParameterList","parameters":[],"src":"404:2:1"},"returnParameters":{"id":50,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":51,"src":"430:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48,"name":"uint","nodeType":"ElementaryTypeName","src":"430:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"429:6:1"},"scope":131,"src":"384:52:1","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":58,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":54,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":58,"src":"460:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52,"name":"address","nodeType":"ElementaryTypeName","src":"460:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"459:15:1"},"returnParameters":{"id":57,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":58,"src":"498:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55,"name":"uint","nodeType":"ElementaryTypeName","src":"498:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"497:6:1"},"scope":131,"src":"441:63:1","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"dd62ed3e","id":67,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nodeType":"FunctionDefinition","parameters":{"id":63,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":67,"src":"528:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59,"name":"address","nodeType":"ElementaryTypeName","src":"528:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":67,"src":"543:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"527:32:1"},"returnParameters":{"id":66,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":67,"src":"583:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64,"name":"uint","nodeType":"ElementaryTypeName","src":"583:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"582:6:1"},"scope":131,"src":"509:80:1","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":76,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":72,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":76,"src":"612:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68,"name":"address","nodeType":"ElementaryTypeName","src":"612:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":71,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":76,"src":"629:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70,"name":"uint","nodeType":"ElementaryTypeName","src":"629:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"611:29:1"},"returnParameters":{"id":75,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":76,"src":"659:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73,"name":"bool","nodeType":"ElementaryTypeName","src":"659:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"658:6:1"},"scope":131,"src":"595:70:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":85,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":81,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":85,"src":"688:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77,"name":"address","nodeType":"ElementaryTypeName","src":"688:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":85,"src":"700:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79,"name":"uint","nodeType":"ElementaryTypeName","src":"700:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"687:24:1"},"returnParameters":{"id":84,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":85,"src":"730:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82,"name":"bool","nodeType":"ElementaryTypeName","src":"730:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"729:6:1"},"scope":131,"src":"670:66:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":96,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":92,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","scope":96,"src":"763:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86,"name":"address","nodeType":"ElementaryTypeName","src":"763:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":89,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":96,"src":"777:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88,"name":"address","nodeType":"ElementaryTypeName","src":"777:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":96,"src":"789:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90,"name":"uint","nodeType":"ElementaryTypeName","src":"789:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"762:38:1"},"returnParameters":{"id":95,"nodeType":"ParameterList","parameters":[{"constant":false,"id":94,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":96,"src":"819:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":93,"name":"bool","nodeType":"ElementaryTypeName","src":"819:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"818:6:1"},"scope":131,"src":"741:84:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3644e515","id":101,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nodeType":"FunctionDefinition","parameters":{"id":97,"nodeType":"ParameterList","parameters":[],"src":"856:2:1"},"returnParameters":{"id":100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":101,"src":"882:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":98,"name":"bytes32","nodeType":"ElementaryTypeName","src":"882:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"881:9:1"},"scope":131,"src":"831:60:1","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"30adf81f","id":106,"implemented":false,"kind":"function","modifiers":[],"name":"PERMIT_TYPEHASH","nodeType":"FunctionDefinition","parameters":{"id":102,"nodeType":"ParameterList","parameters":[],"src":"920:2:1"},"returnParameters":{"id":105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":106,"src":"946:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"946:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"945:9:1"},"scope":131,"src":"896:59:1","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"7ecebe00","id":113,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nodeType":"FunctionDefinition","parameters":{"id":109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":113,"src":"976:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107,"name":"address","nodeType":"ElementaryTypeName","src":"976:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"975:15:1"},"returnParameters":{"id":112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":113,"src":"1014:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":110,"name":"uint","nodeType":"ElementaryTypeName","src":"1014:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1013:6:1"},"scope":131,"src":"960:60:1","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d505accf","id":130,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nodeType":"FunctionDefinition","parameters":{"id":128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":130,"src":"1042:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":114,"name":"address","nodeType":"ElementaryTypeName","src":"1042:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":117,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":130,"src":"1057:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":116,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":119,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":130,"src":"1074:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":118,"name":"uint","nodeType":"ElementaryTypeName","src":"1074:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":121,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":130,"src":"1086:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":120,"name":"uint","nodeType":"ElementaryTypeName","src":"1086:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":123,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","scope":130,"src":"1101:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":122,"name":"uint8","nodeType":"ElementaryTypeName","src":"1101:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":125,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":130,"src":"1110:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1110:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":127,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","scope":130,"src":"1121:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":126,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1121:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1041:90:1"},"returnParameters":{"id":129,"nodeType":"ParameterList","parameters":[],"src":"1140:0:1"},"scope":131,"src":"1026:115:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":132,"src":"26:1117:1"}],"src":"0:1144:1"},"id":1},"contracts/core/interfaces/IAstraFactory.sol":{"ast":{"absolutePath":"contracts/core/interfaces/IAstraFactory.sol","exportedSymbols":{"IAstraFactory":[194]},"id":195,"nodeType":"SourceUnit","nodes":[{"id":133,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:2"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":194,"linearizedBaseContracts":[194],"name":"IAstraFactory","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":143,"name":"PairCreated","nodeType":"EventDefinition","parameters":{"id":142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":135,"indexed":true,"mutability":"mutable","name":"token0","nodeType":"VariableDeclaration","scope":143,"src":"74:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":134,"name":"address","nodeType":"ElementaryTypeName","src":"74:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":137,"indexed":true,"mutability":"mutable","name":"token1","nodeType":"VariableDeclaration","scope":143,"src":"98:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":136,"name":"address","nodeType":"ElementaryTypeName","src":"98:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":139,"indexed":false,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","scope":143,"src":"122:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":138,"name":"address","nodeType":"ElementaryTypeName","src":"122:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":141,"indexed":false,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":143,"src":"136:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":140,"name":"uint","nodeType":"ElementaryTypeName","src":"136:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73:68:2"},"src":"56:86:2"},{"functionSelector":"017e7e58","id":148,"implemented":false,"kind":"function","modifiers":[],"name":"feeTo","nodeType":"FunctionDefinition","parameters":{"id":144,"nodeType":"ParameterList","parameters":[],"src":"162:2:2"},"returnParameters":{"id":147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":146,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":148,"src":"188:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":145,"name":"address","nodeType":"ElementaryTypeName","src":"188:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"187:9:2"},"scope":194,"src":"148:49:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"094b7415","id":153,"implemented":false,"kind":"function","modifiers":[],"name":"feeToSetter","nodeType":"FunctionDefinition","parameters":{"id":149,"nodeType":"ParameterList","parameters":[],"src":"222:2:2"},"returnParameters":{"id":152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":151,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":153,"src":"248:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":150,"name":"address","nodeType":"ElementaryTypeName","src":"248:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"247:9:2"},"scope":194,"src":"202:55:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e6a43905","id":162,"implemented":false,"kind":"function","modifiers":[],"name":"getPair","nodeType":"FunctionDefinition","parameters":{"id":158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":155,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","scope":162,"src":"280:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":154,"name":"address","nodeType":"ElementaryTypeName","src":"280:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":157,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","scope":162,"src":"296:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":156,"name":"address","nodeType":"ElementaryTypeName","src":"296:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"279:32:2"},"returnParameters":{"id":161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":160,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","scope":162,"src":"335:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":159,"name":"address","nodeType":"ElementaryTypeName","src":"335:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"334:14:2"},"scope":194,"src":"263:86:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1e3dd18b","id":169,"implemented":false,"kind":"function","modifiers":[],"name":"allPairs","nodeType":"FunctionDefinition","parameters":{"id":165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":164,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":169,"src":"372:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163,"name":"uint","nodeType":"ElementaryTypeName","src":"372:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"371:6:2"},"returnParameters":{"id":168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":167,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","scope":169,"src":"401:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":166,"name":"address","nodeType":"ElementaryTypeName","src":"401:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"400:14:2"},"scope":194,"src":"354:61:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"574f2ba3","id":174,"implemented":false,"kind":"function","modifiers":[],"name":"allPairsLength","nodeType":"FunctionDefinition","parameters":{"id":170,"nodeType":"ParameterList","parameters":[],"src":"443:2:2"},"returnParameters":{"id":173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":172,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":174,"src":"469:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":171,"name":"uint","nodeType":"ElementaryTypeName","src":"469:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"468:6:2"},"scope":194,"src":"420:55:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c9c65396","id":183,"implemented":false,"kind":"function","modifiers":[],"name":"createPair","nodeType":"FunctionDefinition","parameters":{"id":179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":176,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","scope":183,"src":"501:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":175,"name":"address","nodeType":"ElementaryTypeName","src":"501:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":178,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","scope":183,"src":"517:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":177,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"500:32:2"},"returnParameters":{"id":182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":181,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","scope":183,"src":"551:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":180,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:14:2"},"scope":194,"src":"481:84:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f46901ed","id":188,"implemented":false,"kind":"function","modifiers":[],"name":"setFeeTo","nodeType":"FunctionDefinition","parameters":{"id":186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":188,"src":"589:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":184,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"588:9:2"},"returnParameters":{"id":187,"nodeType":"ParameterList","parameters":[],"src":"606:0:2"},"scope":194,"src":"571:36:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a2e74af6","id":193,"implemented":false,"kind":"function","modifiers":[],"name":"setFeeToSetter","nodeType":"FunctionDefinition","parameters":{"id":191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":190,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":193,"src":"636:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":189,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"635:9:2"},"returnParameters":{"id":192,"nodeType":"ParameterList","parameters":[],"src":"653:0:2"},"scope":194,"src":"612:42:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":195,"src":"26:630:2"}],"src":"0:657:2"},"id":2},"contracts/core/interfaces/IAstraPair.sol":{"ast":{"absolutePath":"contracts/core/interfaces/IAstraPair.sol","exportedSymbols":{"IAstraPair":[436]},"id":437,"nodeType":"SourceUnit","nodes":[{"id":196,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:3"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":436,"linearizedBaseContracts":[436],"name":"IAstraPair","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":204,"name":"Approval","nodeType":"EventDefinition","parameters":{"id":203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":198,"indexed":true,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":204,"src":"68:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":197,"name":"address","nodeType":"ElementaryTypeName","src":"68:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":200,"indexed":true,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":204,"src":"91:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":199,"name":"address","nodeType":"ElementaryTypeName","src":"91:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":202,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":204,"src":"116:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":201,"name":"uint","nodeType":"ElementaryTypeName","src":"116:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"67:60:3"},"src":"53:75:3"},{"anonymous":false,"id":212,"name":"Transfer","nodeType":"EventDefinition","parameters":{"id":211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206,"indexed":true,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","scope":212,"src":"148:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":205,"name":"address","nodeType":"ElementaryTypeName","src":"148:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":208,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":212,"src":"170:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207,"name":"address","nodeType":"ElementaryTypeName","src":"170:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":210,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":212,"src":"190:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":209,"name":"uint","nodeType":"ElementaryTypeName","src":"190:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"147:54:3"},"src":"133:69:3"},{"functionSelector":"06fdde03","id":217,"implemented":false,"kind":"function","modifiers":[],"name":"name","nodeType":"FunctionDefinition","parameters":{"id":213,"nodeType":"ParameterList","parameters":[],"src":"221:2:3"},"returnParameters":{"id":216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":215,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":217,"src":"247:13:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":214,"name":"string","nodeType":"ElementaryTypeName","src":"247:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"246:15:3"},"scope":436,"src":"208:54:3","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":222,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nodeType":"FunctionDefinition","parameters":{"id":218,"nodeType":"ParameterList","parameters":[],"src":"282:2:3"},"returnParameters":{"id":221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":222,"src":"308:13:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":219,"name":"string","nodeType":"ElementaryTypeName","src":"308:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"307:15:3"},"scope":436,"src":"267:56:3","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":227,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nodeType":"FunctionDefinition","parameters":{"id":223,"nodeType":"ParameterList","parameters":[],"src":"345:2:3"},"returnParameters":{"id":226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":225,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":227,"src":"371:5:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":224,"name":"uint8","nodeType":"ElementaryTypeName","src":"371:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"370:7:3"},"scope":436,"src":"328:50:3","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":232,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","parameters":{"id":228,"nodeType":"ParameterList","parameters":[],"src":"403:2:3"},"returnParameters":{"id":231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":230,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":232,"src":"429:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":229,"name":"uint","nodeType":"ElementaryTypeName","src":"429:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"428:6:3"},"scope":436,"src":"383:52:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":239,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":234,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":239,"src":"459:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":233,"name":"address","nodeType":"ElementaryTypeName","src":"459:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"458:15:3"},"returnParameters":{"id":238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":237,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":239,"src":"497:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":236,"name":"uint","nodeType":"ElementaryTypeName","src":"497:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"496:6:3"},"scope":436,"src":"440:63:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"dd62ed3e","id":248,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nodeType":"FunctionDefinition","parameters":{"id":244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":241,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":248,"src":"527:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":240,"name":"address","nodeType":"ElementaryTypeName","src":"527:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":243,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":248,"src":"542:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":242,"name":"address","nodeType":"ElementaryTypeName","src":"542:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"526:32:3"},"returnParameters":{"id":247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":246,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":248,"src":"582:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":245,"name":"uint","nodeType":"ElementaryTypeName","src":"582:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"581:6:3"},"scope":436,"src":"508:80:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":257,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":257,"src":"611:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":249,"name":"address","nodeType":"ElementaryTypeName","src":"611:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":252,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":257,"src":"628:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":251,"name":"uint","nodeType":"ElementaryTypeName","src":"628:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"610:29:3"},"returnParameters":{"id":256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":255,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":257,"src":"658:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":254,"name":"bool","nodeType":"ElementaryTypeName","src":"658:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"657:6:3"},"scope":436,"src":"594:70:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":266,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":259,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":266,"src":"687:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":258,"name":"address","nodeType":"ElementaryTypeName","src":"687:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":261,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":266,"src":"699:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":260,"name":"uint","nodeType":"ElementaryTypeName","src":"699:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"686:24:3"},"returnParameters":{"id":265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":264,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":266,"src":"729:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":263,"name":"bool","nodeType":"ElementaryTypeName","src":"729:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"728:6:3"},"scope":436,"src":"669:66:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":277,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":268,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","scope":277,"src":"762:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":267,"name":"address","nodeType":"ElementaryTypeName","src":"762:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":270,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":277,"src":"776:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":269,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":272,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":277,"src":"788:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":271,"name":"uint","nodeType":"ElementaryTypeName","src":"788:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"761:38:3"},"returnParameters":{"id":276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":275,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":277,"src":"818:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":274,"name":"bool","nodeType":"ElementaryTypeName","src":"818:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"817:6:3"},"scope":436,"src":"740:84:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3644e515","id":282,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nodeType":"FunctionDefinition","parameters":{"id":278,"nodeType":"ParameterList","parameters":[],"src":"855:2:3"},"returnParameters":{"id":281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":280,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":282,"src":"881:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"881:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"880:9:3"},"scope":436,"src":"830:60:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"30adf81f","id":287,"implemented":false,"kind":"function","modifiers":[],"name":"PERMIT_TYPEHASH","nodeType":"FunctionDefinition","parameters":{"id":283,"nodeType":"ParameterList","parameters":[],"src":"919:2:3"},"returnParameters":{"id":286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":285,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":287,"src":"945:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"945:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"944:9:3"},"scope":436,"src":"895:59:3","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"7ecebe00","id":294,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nodeType":"FunctionDefinition","parameters":{"id":290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":289,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":294,"src":"975:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":288,"name":"address","nodeType":"ElementaryTypeName","src":"975:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"974:15:3"},"returnParameters":{"id":293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":292,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":294,"src":"1013:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":291,"name":"uint","nodeType":"ElementaryTypeName","src":"1013:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1012:6:3"},"scope":436,"src":"959:60:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d505accf","id":311,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nodeType":"FunctionDefinition","parameters":{"id":309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":296,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":311,"src":"1041:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":295,"name":"address","nodeType":"ElementaryTypeName","src":"1041:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":298,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":311,"src":"1056:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":297,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":300,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":311,"src":"1073:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":299,"name":"uint","nodeType":"ElementaryTypeName","src":"1073:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":302,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":311,"src":"1085:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint","nodeType":"ElementaryTypeName","src":"1085:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":304,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","scope":311,"src":"1100:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":303,"name":"uint8","nodeType":"ElementaryTypeName","src":"1100:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":306,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":311,"src":"1109:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1109:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":308,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","scope":311,"src":"1120:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1120:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1040:90:3"},"returnParameters":{"id":310,"nodeType":"ParameterList","parameters":[],"src":"1139:0:3"},"scope":436,"src":"1025:115:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"id":319,"name":"Mint","nodeType":"EventDefinition","parameters":{"id":318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":313,"indexed":true,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":319,"src":"1157:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":312,"name":"address","nodeType":"ElementaryTypeName","src":"1157:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":315,"indexed":false,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":319,"src":"1181:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":314,"name":"uint","nodeType":"ElementaryTypeName","src":"1181:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":317,"indexed":false,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":319,"src":"1195:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":316,"name":"uint","nodeType":"ElementaryTypeName","src":"1195:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1156:52:3"},"src":"1146:63:3"},{"anonymous":false,"id":329,"name":"Burn","nodeType":"EventDefinition","parameters":{"id":328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":321,"indexed":true,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":329,"src":"1225:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":320,"name":"address","nodeType":"ElementaryTypeName","src":"1225:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":323,"indexed":false,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":329,"src":"1249:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":322,"name":"uint","nodeType":"ElementaryTypeName","src":"1249:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":325,"indexed":false,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":329,"src":"1263:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":324,"name":"uint","nodeType":"ElementaryTypeName","src":"1263:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":327,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":329,"src":"1277:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":326,"name":"address","nodeType":"ElementaryTypeName","src":"1277:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1224:72:3"},"src":"1214:83:3"},{"anonymous":false,"id":343,"name":"Swap","nodeType":"EventDefinition","parameters":{"id":342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":331,"indexed":true,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":343,"src":"1322:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":330,"name":"address","nodeType":"ElementaryTypeName","src":"1322:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":333,"indexed":false,"mutability":"mutable","name":"amount0In","nodeType":"VariableDeclaration","scope":343,"src":"1354:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":332,"name":"uint","nodeType":"ElementaryTypeName","src":"1354:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":335,"indexed":false,"mutability":"mutable","name":"amount1In","nodeType":"VariableDeclaration","scope":343,"src":"1378:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":334,"name":"uint","nodeType":"ElementaryTypeName","src":"1378:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":337,"indexed":false,"mutability":"mutable","name":"amount0Out","nodeType":"VariableDeclaration","scope":343,"src":"1402:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":336,"name":"uint","nodeType":"ElementaryTypeName","src":"1402:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":339,"indexed":false,"mutability":"mutable","name":"amount1Out","nodeType":"VariableDeclaration","scope":343,"src":"1427:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":338,"name":"uint","nodeType":"ElementaryTypeName","src":"1427:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":341,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":343,"src":"1452:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":340,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1312:164:3"},"src":"1302:175:3"},{"anonymous":false,"id":349,"name":"Sync","nodeType":"EventDefinition","parameters":{"id":348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":345,"indexed":false,"mutability":"mutable","name":"reserve0","nodeType":"VariableDeclaration","scope":349,"src":"1493:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":344,"name":"uint112","nodeType":"ElementaryTypeName","src":"1493:7:3","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":347,"indexed":false,"mutability":"mutable","name":"reserve1","nodeType":"VariableDeclaration","scope":349,"src":"1511:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":346,"name":"uint112","nodeType":"ElementaryTypeName","src":"1511:7:3","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"1492:36:3"},"src":"1482:47:3"},{"functionSelector":"ba9a7a56","id":354,"implemented":false,"kind":"function","modifiers":[],"name":"MINIMUM_LIQUIDITY","nodeType":"FunctionDefinition","parameters":{"id":350,"nodeType":"ParameterList","parameters":[],"src":"1561:2:3"},"returnParameters":{"id":353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":352,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":354,"src":"1587:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":351,"name":"uint","nodeType":"ElementaryTypeName","src":"1587:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1586:6:3"},"scope":436,"src":"1535:58:3","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"c45a0155","id":359,"implemented":false,"kind":"function","modifiers":[],"name":"factory","nodeType":"FunctionDefinition","parameters":{"id":355,"nodeType":"ParameterList","parameters":[],"src":"1614:2:3"},"returnParameters":{"id":358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":357,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":359,"src":"1640:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":356,"name":"address","nodeType":"ElementaryTypeName","src":"1640:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1639:9:3"},"scope":436,"src":"1598:51:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0dfe1681","id":364,"implemented":false,"kind":"function","modifiers":[],"name":"token0","nodeType":"FunctionDefinition","parameters":{"id":360,"nodeType":"ParameterList","parameters":[],"src":"1669:2:3"},"returnParameters":{"id":363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":362,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":364,"src":"1695:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":361,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1694:9:3"},"scope":436,"src":"1654:50:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d21220a7","id":369,"implemented":false,"kind":"function","modifiers":[],"name":"token1","nodeType":"FunctionDefinition","parameters":{"id":365,"nodeType":"ParameterList","parameters":[],"src":"1724:2:3"},"returnParameters":{"id":368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":367,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":369,"src":"1750:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":366,"name":"address","nodeType":"ElementaryTypeName","src":"1750:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1749:9:3"},"scope":436,"src":"1709:50:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0902f1ac","id":378,"implemented":false,"kind":"function","modifiers":[],"name":"getReserves","nodeType":"FunctionDefinition","parameters":{"id":370,"nodeType":"ParameterList","parameters":[],"src":"1784:2:3"},"returnParameters":{"id":377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":372,"mutability":"mutable","name":"reserve0","nodeType":"VariableDeclaration","scope":378,"src":"1810:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":371,"name":"uint112","nodeType":"ElementaryTypeName","src":"1810:7:3","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":374,"mutability":"mutable","name":"reserve1","nodeType":"VariableDeclaration","scope":378,"src":"1828:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":373,"name":"uint112","nodeType":"ElementaryTypeName","src":"1828:7:3","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":376,"mutability":"mutable","name":"blockTimestampLast","nodeType":"VariableDeclaration","scope":378,"src":"1846:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":375,"name":"uint32","nodeType":"ElementaryTypeName","src":"1846:6:3","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1809:63:3"},"scope":436,"src":"1764:109:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5909c0d5","id":383,"implemented":false,"kind":"function","modifiers":[],"name":"price0CumulativeLast","nodeType":"FunctionDefinition","parameters":{"id":379,"nodeType":"ParameterList","parameters":[],"src":"1907:2:3"},"returnParameters":{"id":382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":381,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":383,"src":"1933:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":380,"name":"uint","nodeType":"ElementaryTypeName","src":"1933:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1932:6:3"},"scope":436,"src":"1878:61:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5a3d5493","id":388,"implemented":false,"kind":"function","modifiers":[],"name":"price1CumulativeLast","nodeType":"FunctionDefinition","parameters":{"id":384,"nodeType":"ParameterList","parameters":[],"src":"1973:2:3"},"returnParameters":{"id":387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":386,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":388,"src":"1999:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":385,"name":"uint","nodeType":"ElementaryTypeName","src":"1999:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1998:6:3"},"scope":436,"src":"1944:61:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7464fc3d","id":393,"implemented":false,"kind":"function","modifiers":[],"name":"kLast","nodeType":"FunctionDefinition","parameters":{"id":389,"nodeType":"ParameterList","parameters":[],"src":"2024:2:3"},"returnParameters":{"id":392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":391,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":393,"src":"2050:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":390,"name":"uint","nodeType":"ElementaryTypeName","src":"2050:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2049:6:3"},"scope":436,"src":"2010:46:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6a627842","id":400,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nodeType":"FunctionDefinition","parameters":{"id":396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":395,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":400,"src":"2076:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":394,"name":"address","nodeType":"ElementaryTypeName","src":"2076:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2075:12:3"},"returnParameters":{"id":399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":398,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","scope":400,"src":"2106:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":397,"name":"uint","nodeType":"ElementaryTypeName","src":"2106:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2105:16:3"},"scope":436,"src":"2062:60:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"89afcb44","id":409,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nodeType":"FunctionDefinition","parameters":{"id":403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":402,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":409,"src":"2141:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":401,"name":"address","nodeType":"ElementaryTypeName","src":"2141:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2140:12:3"},"returnParameters":{"id":408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":405,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":409,"src":"2171:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":404,"name":"uint","nodeType":"ElementaryTypeName","src":"2171:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":407,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":409,"src":"2185:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":406,"name":"uint","nodeType":"ElementaryTypeName","src":"2185:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2170:28:3"},"scope":436,"src":"2127:72:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"022c0d9f","id":420,"implemented":false,"kind":"function","modifiers":[],"name":"swap","nodeType":"FunctionDefinition","parameters":{"id":418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":411,"mutability":"mutable","name":"amount0Out","nodeType":"VariableDeclaration","scope":420,"src":"2218:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":410,"name":"uint","nodeType":"ElementaryTypeName","src":"2218:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":413,"mutability":"mutable","name":"amount1Out","nodeType":"VariableDeclaration","scope":420,"src":"2235:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":412,"name":"uint","nodeType":"ElementaryTypeName","src":"2235:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":415,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":420,"src":"2252:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":414,"name":"address","nodeType":"ElementaryTypeName","src":"2252:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":417,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","scope":420,"src":"2264:19:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":416,"name":"bytes","nodeType":"ElementaryTypeName","src":"2264:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2217:67:3"},"returnParameters":{"id":419,"nodeType":"ParameterList","parameters":[],"src":"2293:0:3"},"scope":436,"src":"2204:90:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"bc25cf77","id":425,"implemented":false,"kind":"function","modifiers":[],"name":"skim","nodeType":"FunctionDefinition","parameters":{"id":423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":422,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":425,"src":"2313:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":421,"name":"address","nodeType":"ElementaryTypeName","src":"2313:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2312:12:3"},"returnParameters":{"id":424,"nodeType":"ParameterList","parameters":[],"src":"2333:0:3"},"scope":436,"src":"2299:35:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fff6cae9","id":428,"implemented":false,"kind":"function","modifiers":[],"name":"sync","nodeType":"FunctionDefinition","parameters":{"id":426,"nodeType":"ParameterList","parameters":[],"src":"2352:2:3"},"returnParameters":{"id":427,"nodeType":"ParameterList","parameters":[],"src":"2363:0:3"},"scope":436,"src":"2339:25:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"485cc955","id":435,"implemented":false,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":430,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":435,"src":"2390:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":429,"name":"address","nodeType":"ElementaryTypeName","src":"2390:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":432,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":435,"src":"2399:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":431,"name":"address","nodeType":"ElementaryTypeName","src":"2399:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2389:18:3"},"returnParameters":{"id":434,"nodeType":"ParameterList","parameters":[],"src":"2416:0:3"},"scope":436,"src":"2370:47:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":437,"src":"26:2393:3"}],"src":"0:2420:3"},"id":3},"contracts/core/interfaces/IERC20.sol":{"ast":{"absolutePath":"contracts/core/interfaces/IERC20.sol","exportedSymbols":{"IERC20":[520]},"id":521,"nodeType":"SourceUnit","nodes":[{"id":438,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:4"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":520,"linearizedBaseContracts":[520],"name":"IERC20","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":446,"name":"Approval","nodeType":"EventDefinition","parameters":{"id":445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":440,"indexed":true,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":446,"src":"64:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":439,"name":"address","nodeType":"ElementaryTypeName","src":"64:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":442,"indexed":true,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":446,"src":"87:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":441,"name":"address","nodeType":"ElementaryTypeName","src":"87:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":444,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":446,"src":"112:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":443,"name":"uint","nodeType":"ElementaryTypeName","src":"112:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63:60:4"},"src":"49:75:4"},{"anonymous":false,"id":454,"name":"Transfer","nodeType":"EventDefinition","parameters":{"id":453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":448,"indexed":true,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","scope":454,"src":"144:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":447,"name":"address","nodeType":"ElementaryTypeName","src":"144:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":450,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":454,"src":"166:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":449,"name":"address","nodeType":"ElementaryTypeName","src":"166:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":452,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":454,"src":"186:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":451,"name":"uint","nodeType":"ElementaryTypeName","src":"186:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"143:54:4"},"src":"129:69:4"},{"functionSelector":"06fdde03","id":459,"implemented":false,"kind":"function","modifiers":[],"name":"name","nodeType":"FunctionDefinition","parameters":{"id":455,"nodeType":"ParameterList","parameters":[],"src":"217:2:4"},"returnParameters":{"id":458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":457,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":459,"src":"243:13:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":456,"name":"string","nodeType":"ElementaryTypeName","src":"243:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"242:15:4"},"scope":520,"src":"204:54:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":464,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nodeType":"FunctionDefinition","parameters":{"id":460,"nodeType":"ParameterList","parameters":[],"src":"278:2:4"},"returnParameters":{"id":463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":462,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":464,"src":"304:13:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":461,"name":"string","nodeType":"ElementaryTypeName","src":"304:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"303:15:4"},"scope":520,"src":"263:56:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":469,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nodeType":"FunctionDefinition","parameters":{"id":465,"nodeType":"ParameterList","parameters":[],"src":"341:2:4"},"returnParameters":{"id":468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":467,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":469,"src":"367:5:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":466,"name":"uint8","nodeType":"ElementaryTypeName","src":"367:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"366:7:4"},"scope":520,"src":"324:50:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":474,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","parameters":{"id":470,"nodeType":"ParameterList","parameters":[],"src":"399:2:4"},"returnParameters":{"id":473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":472,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":474,"src":"425:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":471,"name":"uint","nodeType":"ElementaryTypeName","src":"425:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"424:6:4"},"scope":520,"src":"379:52:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":481,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":476,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":481,"src":"455:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":475,"name":"address","nodeType":"ElementaryTypeName","src":"455:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"454:15:4"},"returnParameters":{"id":480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":479,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":481,"src":"493:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":478,"name":"uint","nodeType":"ElementaryTypeName","src":"493:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"492:6:4"},"scope":520,"src":"436:63:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"dd62ed3e","id":490,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nodeType":"FunctionDefinition","parameters":{"id":486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":483,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":490,"src":"523:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":482,"name":"address","nodeType":"ElementaryTypeName","src":"523:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":485,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":490,"src":"538:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":484,"name":"address","nodeType":"ElementaryTypeName","src":"538:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"522:32:4"},"returnParameters":{"id":489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":488,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":490,"src":"578:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":487,"name":"uint","nodeType":"ElementaryTypeName","src":"578:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"577:6:4"},"scope":520,"src":"504:80:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":499,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":492,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":499,"src":"607:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":491,"name":"address","nodeType":"ElementaryTypeName","src":"607:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":494,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":499,"src":"624:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":493,"name":"uint","nodeType":"ElementaryTypeName","src":"624:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"606:29:4"},"returnParameters":{"id":498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":497,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":499,"src":"654:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":496,"name":"bool","nodeType":"ElementaryTypeName","src":"654:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"653:6:4"},"scope":520,"src":"590:70:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":508,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":501,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":508,"src":"683:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":500,"name":"address","nodeType":"ElementaryTypeName","src":"683:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":503,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":508,"src":"695:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":502,"name":"uint","nodeType":"ElementaryTypeName","src":"695:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"682:24:4"},"returnParameters":{"id":507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":506,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":508,"src":"725:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":505,"name":"bool","nodeType":"ElementaryTypeName","src":"725:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"724:6:4"},"scope":520,"src":"665:66:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":519,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":510,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","scope":519,"src":"758:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":509,"name":"address","nodeType":"ElementaryTypeName","src":"758:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":512,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":519,"src":"772:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":511,"name":"address","nodeType":"ElementaryTypeName","src":"772:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":514,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":519,"src":"784:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":513,"name":"uint","nodeType":"ElementaryTypeName","src":"784:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"757:38:4"},"returnParameters":{"id":518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":517,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":519,"src":"814:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":516,"name":"bool","nodeType":"ElementaryTypeName","src":"814:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"813:6:4"},"scope":520,"src":"736:84:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":521,"src":"26:796:4"}],"src":"0:823:4"},"id":4},"contracts/periphery/interfaces/IAstraMigrator.sol":{"ast":{"absolutePath":"contracts/periphery/interfaces/IAstraMigrator.sol","exportedSymbols":{"IAstraMigrator":[536]},"id":537,"nodeType":"SourceUnit","nodes":[{"id":522,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:5"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":536,"linearizedBaseContracts":[536],"name":"IAstraMigrator","nodeType":"ContractDefinition","nodes":[{"functionSelector":"b7df1d25","id":535,"implemented":false,"kind":"function","modifiers":[],"name":"migrate","nodeType":"FunctionDefinition","parameters":{"id":533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":524,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":535,"src":"74:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":523,"name":"address","nodeType":"ElementaryTypeName","src":"74:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":526,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","scope":535,"src":"89:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":525,"name":"uint","nodeType":"ElementaryTypeName","src":"89:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":528,"mutability":"mutable","name":"amountETHMin","nodeType":"VariableDeclaration","scope":535,"src":"110:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":527,"name":"uint","nodeType":"ElementaryTypeName","src":"110:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":530,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":535,"src":"129:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":529,"name":"address","nodeType":"ElementaryTypeName","src":"129:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":532,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":535,"src":"141:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":531,"name":"uint","nodeType":"ElementaryTypeName","src":"141:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73:82:5"},"returnParameters":{"id":534,"nodeType":"ParameterList","parameters":[],"src":"164:0:5"},"scope":536,"src":"57:108:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":537,"src":"26:141:5"}],"src":"0:168:5"},"id":5},"contracts/periphery/interfaces/IAstraRouter01.sol":{"ast":{"absolutePath":"contracts/periphery/interfaces/IAstraRouter01.sol","exportedSymbols":{"IAstraRouter01":[844]},"id":845,"nodeType":"SourceUnit","nodes":[{"id":538,"literals":["solidity",">=","0.6",".2"],"nodeType":"PragmaDirective","src":"0:24:6"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":844,"linearizedBaseContracts":[844],"name":"IAstraRouter01","nodeType":"ContractDefinition","nodes":[{"functionSelector":"c45a0155","id":543,"implemented":false,"kind":"function","modifiers":[],"name":"factory","nodeType":"FunctionDefinition","parameters":{"id":539,"nodeType":"ParameterList","parameters":[],"src":"73:2:6"},"returnParameters":{"id":542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":541,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":543,"src":"99:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":540,"name":"address","nodeType":"ElementaryTypeName","src":"99:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"98:9:6"},"scope":844,"src":"57:51:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"90793ea8","id":548,"implemented":false,"kind":"function","modifiers":[],"name":"SAMB","nodeType":"FunctionDefinition","parameters":{"id":544,"nodeType":"ParameterList","parameters":[],"src":"127:2:6"},"returnParameters":{"id":547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":546,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":548,"src":"153:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":545,"name":"address","nodeType":"ElementaryTypeName","src":"153:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"152:9:6"},"scope":844,"src":"114:48:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"e8e33700","id":573,"implemented":false,"kind":"function","modifiers":[],"name":"addLiquidity","nodeType":"FunctionDefinition","parameters":{"id":565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":550,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","scope":573,"src":"199:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":549,"name":"address","nodeType":"ElementaryTypeName","src":"199:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":552,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","scope":573,"src":"223:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"223:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":554,"mutability":"mutable","name":"amountADesired","nodeType":"VariableDeclaration","scope":573,"src":"247:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":553,"name":"uint256","nodeType":"ElementaryTypeName","src":"247:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":556,"mutability":"mutable","name":"amountBDesired","nodeType":"VariableDeclaration","scope":573,"src":"279:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":555,"name":"uint256","nodeType":"ElementaryTypeName","src":"279:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":558,"mutability":"mutable","name":"amountAMin","nodeType":"VariableDeclaration","scope":573,"src":"311:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":557,"name":"uint256","nodeType":"ElementaryTypeName","src":"311:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":560,"mutability":"mutable","name":"amountBMin","nodeType":"VariableDeclaration","scope":573,"src":"339:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":559,"name":"uint256","nodeType":"ElementaryTypeName","src":"339:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":562,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":573,"src":"367:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":561,"name":"address","nodeType":"ElementaryTypeName","src":"367:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":564,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":573,"src":"387:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":563,"name":"uint256","nodeType":"ElementaryTypeName","src":"387:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"189:220:6"},"returnParameters":{"id":572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":567,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","scope":573,"src":"457:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":566,"name":"uint256","nodeType":"ElementaryTypeName","src":"457:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":569,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","scope":573,"src":"486:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":568,"name":"uint256","nodeType":"ElementaryTypeName","src":"486:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":571,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","scope":573,"src":"515:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":570,"name":"uint256","nodeType":"ElementaryTypeName","src":"515:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"443:99:6"},"scope":844,"src":"168:375:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"84b0b3a2","id":594,"implemented":false,"kind":"function","modifiers":[],"name":"addLiquidityAMB","nodeType":"FunctionDefinition","parameters":{"id":586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":575,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":594,"src":"583:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":574,"name":"address","nodeType":"ElementaryTypeName","src":"583:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":577,"mutability":"mutable","name":"amountTokenDesired","nodeType":"VariableDeclaration","scope":594,"src":"606:26:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":576,"name":"uint256","nodeType":"ElementaryTypeName","src":"606:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":579,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","scope":594,"src":"642:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":578,"name":"uint256","nodeType":"ElementaryTypeName","src":"642:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":581,"mutability":"mutable","name":"amountAMBMin","nodeType":"VariableDeclaration","scope":594,"src":"674:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":580,"name":"uint256","nodeType":"ElementaryTypeName","src":"674:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":583,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":594,"src":"704:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":582,"name":"address","nodeType":"ElementaryTypeName","src":"704:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":585,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":594,"src":"724:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":584,"name":"uint256","nodeType":"ElementaryTypeName","src":"724:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"573:173:6"},"returnParameters":{"id":593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":588,"mutability":"mutable","name":"amountToken","nodeType":"VariableDeclaration","scope":594,"src":"810:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":587,"name":"uint256","nodeType":"ElementaryTypeName","src":"810:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":590,"mutability":"mutable","name":"amountAMB","nodeType":"VariableDeclaration","scope":594,"src":"843:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":589,"name":"uint256","nodeType":"ElementaryTypeName","src":"843:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":592,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","scope":594,"src":"874:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":591,"name":"uint256","nodeType":"ElementaryTypeName","src":"874:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"796:105:6"},"scope":844,"src":"549:353:6","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"baa2abde","id":615,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidity","nodeType":"FunctionDefinition","parameters":{"id":609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":596,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","scope":615,"src":"942:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":595,"name":"address","nodeType":"ElementaryTypeName","src":"942:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":598,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","scope":615,"src":"966:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":597,"name":"address","nodeType":"ElementaryTypeName","src":"966:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":600,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","scope":615,"src":"990:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":599,"name":"uint256","nodeType":"ElementaryTypeName","src":"990:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":602,"mutability":"mutable","name":"amountAMin","nodeType":"VariableDeclaration","scope":615,"src":"1017:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":601,"name":"uint256","nodeType":"ElementaryTypeName","src":"1017:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":604,"mutability":"mutable","name":"amountBMin","nodeType":"VariableDeclaration","scope":615,"src":"1045:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":603,"name":"uint256","nodeType":"ElementaryTypeName","src":"1045:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":606,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":615,"src":"1073:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":605,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":608,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":615,"src":"1093:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":607,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"932:183:6"},"returnParameters":{"id":614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":611,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","scope":615,"src":"1134:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":610,"name":"uint256","nodeType":"ElementaryTypeName","src":"1134:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":613,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","scope":615,"src":"1151:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":612,"name":"uint256","nodeType":"ElementaryTypeName","src":"1151:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1133:34:6"},"scope":844,"src":"908:260:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e77bdfc5","id":634,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidityAMB","nodeType":"FunctionDefinition","parameters":{"id":628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":617,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":634,"src":"1211:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":616,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":619,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","scope":634,"src":"1234:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":618,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":621,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","scope":634,"src":"1261:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":620,"name":"uint256","nodeType":"ElementaryTypeName","src":"1261:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":623,"mutability":"mutable","name":"amountAMBMin","nodeType":"VariableDeclaration","scope":634,"src":"1293:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":622,"name":"uint256","nodeType":"ElementaryTypeName","src":"1293:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":625,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":634,"src":"1323:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":624,"name":"address","nodeType":"ElementaryTypeName","src":"1323:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":627,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":634,"src":"1343:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":626,"name":"uint256","nodeType":"ElementaryTypeName","src":"1343:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1201:164:6"},"returnParameters":{"id":633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":630,"mutability":"mutable","name":"amountToken","nodeType":"VariableDeclaration","scope":634,"src":"1384:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":629,"name":"uint256","nodeType":"ElementaryTypeName","src":"1384:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":632,"mutability":"mutable","name":"amountAMB","nodeType":"VariableDeclaration","scope":634,"src":"1405:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":631,"name":"uint256","nodeType":"ElementaryTypeName","src":"1405:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1383:40:6"},"scope":844,"src":"1174:250:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2195995c","id":663,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidityWithPermit","nodeType":"FunctionDefinition","parameters":{"id":657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":636,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","scope":663,"src":"1474:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":635,"name":"address","nodeType":"ElementaryTypeName","src":"1474:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":638,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","scope":663,"src":"1498:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":637,"name":"address","nodeType":"ElementaryTypeName","src":"1498:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":640,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","scope":663,"src":"1522:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":639,"name":"uint256","nodeType":"ElementaryTypeName","src":"1522:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":642,"mutability":"mutable","name":"amountAMin","nodeType":"VariableDeclaration","scope":663,"src":"1549:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":641,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":644,"mutability":"mutable","name":"amountBMin","nodeType":"VariableDeclaration","scope":663,"src":"1577:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":643,"name":"uint256","nodeType":"ElementaryTypeName","src":"1577:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":646,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":663,"src":"1605:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":645,"name":"address","nodeType":"ElementaryTypeName","src":"1605:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":648,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":663,"src":"1625:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":647,"name":"uint256","nodeType":"ElementaryTypeName","src":"1625:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":650,"mutability":"mutable","name":"approveMax","nodeType":"VariableDeclaration","scope":663,"src":"1651:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":649,"name":"bool","nodeType":"ElementaryTypeName","src":"1651:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":652,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","scope":663,"src":"1676:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":651,"name":"uint8","nodeType":"ElementaryTypeName","src":"1676:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":654,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":663,"src":"1693:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1693:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":656,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","scope":663,"src":"1712:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1712:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1464:263:6"},"returnParameters":{"id":662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":659,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","scope":663,"src":"1746:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":658,"name":"uint256","nodeType":"ElementaryTypeName","src":"1746:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":661,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","scope":663,"src":"1763:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":660,"name":"uint256","nodeType":"ElementaryTypeName","src":"1763:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1745:34:6"},"scope":844,"src":"1430:350:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6eeccb89","id":690,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidityAMBWithPermit","nodeType":"FunctionDefinition","parameters":{"id":684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":665,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":690,"src":"1833:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":664,"name":"address","nodeType":"ElementaryTypeName","src":"1833:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":667,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","scope":690,"src":"1856:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":666,"name":"uint256","nodeType":"ElementaryTypeName","src":"1856:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":669,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","scope":690,"src":"1883:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":668,"name":"uint256","nodeType":"ElementaryTypeName","src":"1883:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":671,"mutability":"mutable","name":"amountAMBMin","nodeType":"VariableDeclaration","scope":690,"src":"1915:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":670,"name":"uint256","nodeType":"ElementaryTypeName","src":"1915:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":673,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":690,"src":"1945:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":672,"name":"address","nodeType":"ElementaryTypeName","src":"1945:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":675,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":690,"src":"1965:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":674,"name":"uint256","nodeType":"ElementaryTypeName","src":"1965:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":677,"mutability":"mutable","name":"approveMax","nodeType":"VariableDeclaration","scope":690,"src":"1991:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":676,"name":"bool","nodeType":"ElementaryTypeName","src":"1991:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":679,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","scope":690,"src":"2016:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":678,"name":"uint8","nodeType":"ElementaryTypeName","src":"2016:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":681,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":690,"src":"2033:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2033:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":683,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","scope":690,"src":"2052:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":682,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2052:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1823:244:6"},"returnParameters":{"id":689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":686,"mutability":"mutable","name":"amountToken","nodeType":"VariableDeclaration","scope":690,"src":"2086:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":685,"name":"uint256","nodeType":"ElementaryTypeName","src":"2086:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":688,"mutability":"mutable","name":"amountAMB","nodeType":"VariableDeclaration","scope":690,"src":"2107:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":687,"name":"uint256","nodeType":"ElementaryTypeName","src":"2107:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2085:40:6"},"scope":844,"src":"1786:340:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"38ed1739","id":707,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForTokens","nodeType":"FunctionDefinition","parameters":{"id":702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":692,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","scope":707,"src":"2175:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":691,"name":"uint256","nodeType":"ElementaryTypeName","src":"2175:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":694,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","scope":707,"src":"2201:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":693,"name":"uint256","nodeType":"ElementaryTypeName","src":"2201:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":697,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","scope":707,"src":"2231:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":695,"name":"address","nodeType":"ElementaryTypeName","src":"2231:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":696,"nodeType":"ArrayTypeName","src":"2231:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":699,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":707,"src":"2264:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":698,"name":"address","nodeType":"ElementaryTypeName","src":"2264:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":701,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":707,"src":"2284:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":700,"name":"uint256","nodeType":"ElementaryTypeName","src":"2284:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2165:141:6"},"returnParameters":{"id":706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":705,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","scope":707,"src":"2325:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":703,"name":"uint256","nodeType":"ElementaryTypeName","src":"2325:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":704,"nodeType":"ArrayTypeName","src":"2325:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2324:26:6"},"scope":844,"src":"2132:219:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8803dbee","id":724,"implemented":false,"kind":"function","modifiers":[],"name":"swapTokensForExactTokens","nodeType":"FunctionDefinition","parameters":{"id":719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":709,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","scope":724,"src":"2400:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":708,"name":"uint256","nodeType":"ElementaryTypeName","src":"2400:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":711,"mutability":"mutable","name":"amountInMax","nodeType":"VariableDeclaration","scope":724,"src":"2427:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":710,"name":"uint256","nodeType":"ElementaryTypeName","src":"2427:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":714,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","scope":724,"src":"2456:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":712,"name":"address","nodeType":"ElementaryTypeName","src":"2456:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":713,"nodeType":"ArrayTypeName","src":"2456:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":716,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":724,"src":"2489:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":715,"name":"address","nodeType":"ElementaryTypeName","src":"2489:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":718,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":724,"src":"2509:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":717,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2390:141:6"},"returnParameters":{"id":723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":722,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","scope":724,"src":"2550:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":720,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":721,"nodeType":"ArrayTypeName","src":"2550:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2549:26:6"},"scope":844,"src":"2357:219:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ac8ee3b6","id":739,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactAMBForTokens","nodeType":"FunctionDefinition","parameters":{"id":734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":726,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","scope":739,"src":"2622:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":725,"name":"uint256","nodeType":"ElementaryTypeName","src":"2622:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":729,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","scope":739,"src":"2652:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":727,"name":"address","nodeType":"ElementaryTypeName","src":"2652:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":728,"nodeType":"ArrayTypeName","src":"2652:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":731,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":739,"src":"2685:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":730,"name":"address","nodeType":"ElementaryTypeName","src":"2685:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":733,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":739,"src":"2705:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":732,"name":"uint256","nodeType":"ElementaryTypeName","src":"2705:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2612:115:6"},"returnParameters":{"id":738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":737,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","scope":739,"src":"2754:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":735,"name":"uint256","nodeType":"ElementaryTypeName","src":"2754:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":736,"nodeType":"ArrayTypeName","src":"2754:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2753:26:6"},"scope":844,"src":"2582:198:6","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"40d2463f","id":756,"implemented":false,"kind":"function","modifiers":[],"name":"swapTokensForExactAMB","nodeType":"FunctionDefinition","parameters":{"id":751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":741,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","scope":756,"src":"2826:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":740,"name":"uint256","nodeType":"ElementaryTypeName","src":"2826:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":743,"mutability":"mutable","name":"amountInMax","nodeType":"VariableDeclaration","scope":756,"src":"2853:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":742,"name":"uint256","nodeType":"ElementaryTypeName","src":"2853:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":746,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","scope":756,"src":"2882:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":744,"name":"address","nodeType":"ElementaryTypeName","src":"2882:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":745,"nodeType":"ArrayTypeName","src":"2882:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":748,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":756,"src":"2915:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":747,"name":"address","nodeType":"ElementaryTypeName","src":"2915:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":750,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":756,"src":"2935:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":749,"name":"uint256","nodeType":"ElementaryTypeName","src":"2935:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2816:141:6"},"returnParameters":{"id":755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":754,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","scope":756,"src":"2976:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":752,"name":"uint256","nodeType":"ElementaryTypeName","src":"2976:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":753,"nodeType":"ArrayTypeName","src":"2976:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2975:26:6"},"scope":844,"src":"2786:216:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e5dee373","id":773,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForAMB","nodeType":"FunctionDefinition","parameters":{"id":768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":758,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","scope":773,"src":"3048:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":757,"name":"uint256","nodeType":"ElementaryTypeName","src":"3048:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":760,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","scope":773,"src":"3074:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":759,"name":"uint256","nodeType":"ElementaryTypeName","src":"3074:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":763,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","scope":773,"src":"3104:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":761,"name":"address","nodeType":"ElementaryTypeName","src":"3104:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":762,"nodeType":"ArrayTypeName","src":"3104:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":765,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":773,"src":"3137:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":764,"name":"address","nodeType":"ElementaryTypeName","src":"3137:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":767,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":773,"src":"3157:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":766,"name":"uint256","nodeType":"ElementaryTypeName","src":"3157:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:141:6"},"returnParameters":{"id":772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":771,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","scope":773,"src":"3198:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":769,"name":"uint256","nodeType":"ElementaryTypeName","src":"3198:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":770,"nodeType":"ArrayTypeName","src":"3198:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3197:26:6"},"scope":844,"src":"3008:216:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ef0dc4be","id":788,"implemented":false,"kind":"function","modifiers":[],"name":"swapAMBForExactTokens","nodeType":"FunctionDefinition","parameters":{"id":783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":775,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","scope":788,"src":"3270:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":774,"name":"uint256","nodeType":"ElementaryTypeName","src":"3270:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":778,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","scope":788,"src":"3297:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":776,"name":"address","nodeType":"ElementaryTypeName","src":"3297:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":777,"nodeType":"ArrayTypeName","src":"3297:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":780,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":788,"src":"3330:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":779,"name":"address","nodeType":"ElementaryTypeName","src":"3330:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":782,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":788,"src":"3350:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":781,"name":"uint256","nodeType":"ElementaryTypeName","src":"3350:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3260:112:6"},"returnParameters":{"id":787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":786,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","scope":788,"src":"3399:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":784,"name":"uint256","nodeType":"ElementaryTypeName","src":"3399:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":785,"nodeType":"ArrayTypeName","src":"3399:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3398:26:6"},"scope":844,"src":"3230:195:6","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"ad615dec","id":799,"implemented":false,"kind":"function","modifiers":[],"name":"quote","nodeType":"FunctionDefinition","parameters":{"id":795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":790,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","scope":799,"src":"3455:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":789,"name":"uint256","nodeType":"ElementaryTypeName","src":"3455:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":792,"mutability":"mutable","name":"reserveA","nodeType":"VariableDeclaration","scope":799,"src":"3480:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":791,"name":"uint256","nodeType":"ElementaryTypeName","src":"3480:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":794,"mutability":"mutable","name":"reserveB","nodeType":"VariableDeclaration","scope":799,"src":"3506:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":793,"name":"uint256","nodeType":"ElementaryTypeName","src":"3506:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3445:83:6"},"returnParameters":{"id":798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":797,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","scope":799,"src":"3552:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":796,"name":"uint256","nodeType":"ElementaryTypeName","src":"3552:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3551:17:6"},"scope":844,"src":"3431:138:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"054d50d4","id":810,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountOut","nodeType":"FunctionDefinition","parameters":{"id":806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":801,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","scope":810,"src":"3606:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":800,"name":"uint256","nodeType":"ElementaryTypeName","src":"3606:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":803,"mutability":"mutable","name":"reserveIn","nodeType":"VariableDeclaration","scope":810,"src":"3632:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":802,"name":"uint256","nodeType":"ElementaryTypeName","src":"3632:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":805,"mutability":"mutable","name":"reserveOut","nodeType":"VariableDeclaration","scope":810,"src":"3659:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":804,"name":"uint256","nodeType":"ElementaryTypeName","src":"3659:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3596:87:6"},"returnParameters":{"id":809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":808,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","scope":810,"src":"3707:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":807,"name":"uint256","nodeType":"ElementaryTypeName","src":"3707:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3706:19:6"},"scope":844,"src":"3575:151:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"85f8c259","id":821,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountIn","nodeType":"FunctionDefinition","parameters":{"id":817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":812,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","scope":821,"src":"3762:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":811,"name":"uint256","nodeType":"ElementaryTypeName","src":"3762:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":814,"mutability":"mutable","name":"reserveIn","nodeType":"VariableDeclaration","scope":821,"src":"3789:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":813,"name":"uint256","nodeType":"ElementaryTypeName","src":"3789:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":816,"mutability":"mutable","name":"reserveOut","nodeType":"VariableDeclaration","scope":821,"src":"3816:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":815,"name":"uint256","nodeType":"ElementaryTypeName","src":"3816:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3752:88:6"},"returnParameters":{"id":820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":819,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","scope":821,"src":"3864:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":818,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3863:18:6"},"scope":844,"src":"3732:150:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"d06ca61f","id":832,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountsOut","nodeType":"FunctionDefinition","parameters":{"id":827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":823,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","scope":832,"src":"3911:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":822,"name":"uint256","nodeType":"ElementaryTypeName","src":"3911:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":826,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","scope":832,"src":"3929:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":824,"name":"address","nodeType":"ElementaryTypeName","src":"3929:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":825,"nodeType":"ArrayTypeName","src":"3929:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3910:43:6"},"returnParameters":{"id":831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":830,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","scope":832,"src":"4001:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":828,"name":"uint256","nodeType":"ElementaryTypeName","src":"4001:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":829,"nodeType":"ArrayTypeName","src":"4001:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4000:26:6"},"scope":844,"src":"3888:139:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1f00ca74","id":843,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountsIn","nodeType":"FunctionDefinition","parameters":{"id":838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":834,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","scope":843,"src":"4055:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":833,"name":"uint256","nodeType":"ElementaryTypeName","src":"4055:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":837,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","scope":843,"src":"4074:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":835,"name":"address","nodeType":"ElementaryTypeName","src":"4074:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":836,"nodeType":"ArrayTypeName","src":"4074:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4054:44:6"},"returnParameters":{"id":842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":841,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","scope":843,"src":"4146:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":839,"name":"uint256","nodeType":"ElementaryTypeName","src":"4146:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":840,"nodeType":"ArrayTypeName","src":"4146:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4145:26:6"},"scope":844,"src":"4033:139:6","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":845,"src":"26:4148:6"}],"src":"0:4175:6"},"id":6},"contracts/periphery/interfaces/IAstraRouter02.sol":{"ast":{"absolutePath":"contracts/periphery/interfaces/IAstraRouter02.sol","exportedSymbols":{"IAstraRouter01":[844],"IAstraRouter02":[932]},"id":933,"nodeType":"SourceUnit","nodes":[{"id":846,"literals":["solidity",">=","0.6",".2"],"nodeType":"PragmaDirective","src":"0:24:7"},{"absolutePath":"contracts/periphery/interfaces/IAstraRouter01.sol","file":"./IAstraRouter01.sol","id":847,"nodeType":"ImportDirective","scope":933,"sourceUnit":845,"src":"26:30:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":848,"name":"IAstraRouter01","nodeType":"UserDefinedTypeName","referencedDeclaration":844,"src":"86:14:7","typeDescriptions":{"typeIdentifier":"t_contract$_IAstraRouter01_$844","typeString":"contract IAstraRouter01"}},"id":849,"nodeType":"InheritanceSpecifier","src":"86:14:7"}],"contractDependencies":[844],"contractKind":"interface","fullyImplemented":false,"id":932,"linearizedBaseContracts":[932,844],"name":"IAstraRouter02","nodeType":"ContractDefinition","nodes":[{"functionSelector":"1e0bcdae","id":866,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidityAMBSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","parameters":{"id":862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":851,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":866,"src":"173:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":850,"name":"address","nodeType":"ElementaryTypeName","src":"173:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":853,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","scope":866,"src":"196:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":852,"name":"uint256","nodeType":"ElementaryTypeName","src":"196:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":855,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","scope":866,"src":"223:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":854,"name":"uint256","nodeType":"ElementaryTypeName","src":"223:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":857,"mutability":"mutable","name":"amountAMBMin","nodeType":"VariableDeclaration","scope":866,"src":"255:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":856,"name":"uint256","nodeType":"ElementaryTypeName","src":"255:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":859,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":866,"src":"285:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":858,"name":"address","nodeType":"ElementaryTypeName","src":"285:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":861,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":866,"src":"305:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":860,"name":"uint256","nodeType":"ElementaryTypeName","src":"305:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"163:164:7"},"returnParameters":{"id":865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":864,"mutability":"mutable","name":"amountAMB","nodeType":"VariableDeclaration","scope":866,"src":"346:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":863,"name":"uint256","nodeType":"ElementaryTypeName","src":"346:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"345:19:7"},"scope":932,"src":"107:258:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"cf795867","id":891,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidityAMBWithPermitSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","parameters":{"id":887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":868,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":891,"src":"447:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":867,"name":"address","nodeType":"ElementaryTypeName","src":"447:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":870,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","scope":891,"src":"470:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":869,"name":"uint256","nodeType":"ElementaryTypeName","src":"470:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":872,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","scope":891,"src":"497:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":871,"name":"uint256","nodeType":"ElementaryTypeName","src":"497:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":874,"mutability":"mutable","name":"amountAMBMin","nodeType":"VariableDeclaration","scope":891,"src":"529:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":873,"name":"uint256","nodeType":"ElementaryTypeName","src":"529:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":876,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":891,"src":"559:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":875,"name":"address","nodeType":"ElementaryTypeName","src":"559:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":878,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":891,"src":"579:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":877,"name":"uint256","nodeType":"ElementaryTypeName","src":"579:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":880,"mutability":"mutable","name":"approveMax","nodeType":"VariableDeclaration","scope":891,"src":"605:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":879,"name":"bool","nodeType":"ElementaryTypeName","src":"605:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":882,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","scope":891,"src":"630:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":881,"name":"uint8","nodeType":"ElementaryTypeName","src":"630:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":884,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":891,"src":"647:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"647:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":886,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","scope":891,"src":"666:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":885,"name":"bytes32","nodeType":"ElementaryTypeName","src":"666:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"437:244:7"},"returnParameters":{"id":890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":889,"mutability":"mutable","name":"amountAMB","nodeType":"VariableDeclaration","scope":891,"src":"700:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":888,"name":"uint256","nodeType":"ElementaryTypeName","src":"700:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"699:19:7"},"scope":932,"src":"371:348:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5c11d795","id":905,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","parameters":{"id":903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":893,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","scope":905,"src":"797:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":892,"name":"uint256","nodeType":"ElementaryTypeName","src":"797:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":895,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","scope":905,"src":"823:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":894,"name":"uint256","nodeType":"ElementaryTypeName","src":"823:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":898,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","scope":905,"src":"853:23:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":896,"name":"address","nodeType":"ElementaryTypeName","src":"853:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":897,"nodeType":"ArrayTypeName","src":"853:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":900,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":905,"src":"886:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":899,"name":"address","nodeType":"ElementaryTypeName","src":"886:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":902,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":905,"src":"906:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":901,"name":"uint256","nodeType":"ElementaryTypeName","src":"906:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"787:141:7"},"returnParameters":{"id":904,"nodeType":"ParameterList","parameters":[],"src":"937:0:7"},"scope":932,"src":"725:213:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c1c222df","id":917,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactAMBForTokensSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","parameters":{"id":915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":907,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","scope":917,"src":"1013:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":906,"name":"uint256","nodeType":"ElementaryTypeName","src":"1013:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":910,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","scope":917,"src":"1043:23:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":908,"name":"address","nodeType":"ElementaryTypeName","src":"1043:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":909,"nodeType":"ArrayTypeName","src":"1043:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":912,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":917,"src":"1076:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":911,"name":"address","nodeType":"ElementaryTypeName","src":"1076:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":914,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":917,"src":"1096:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":913,"name":"uint256","nodeType":"ElementaryTypeName","src":"1096:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1003:115:7"},"returnParameters":{"id":916,"nodeType":"ParameterList","parameters":[],"src":"1135:0:7"},"scope":932,"src":"944:192:7","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"8402322d","id":931,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForAMBSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","parameters":{"id":929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":919,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","scope":931,"src":"1211:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":918,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":921,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","scope":931,"src":"1237:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":920,"name":"uint256","nodeType":"ElementaryTypeName","src":"1237:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":924,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","scope":931,"src":"1267:23:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":922,"name":"address","nodeType":"ElementaryTypeName","src":"1267:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":923,"nodeType":"ArrayTypeName","src":"1267:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":926,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":931,"src":"1300:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":925,"name":"address","nodeType":"ElementaryTypeName","src":"1300:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":928,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","scope":931,"src":"1320:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":927,"name":"uint256","nodeType":"ElementaryTypeName","src":"1320:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1201:141:7"},"returnParameters":{"id":930,"nodeType":"ParameterList","parameters":[],"src":"1351:0:7"},"scope":932,"src":"1142:210:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":933,"src":"58:1296:7"}],"src":"0:1355:7"},"id":7},"contracts/periphery/interfaces/IERC20.sol":{"ast":{"absolutePath":"contracts/periphery/interfaces/IERC20.sol","exportedSymbols":{"IERC20":[1016]},"id":1017,"nodeType":"SourceUnit","nodes":[{"id":934,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:8"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1016,"linearizedBaseContracts":[1016],"name":"IERC20","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":942,"name":"Approval","nodeType":"EventDefinition","parameters":{"id":941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":936,"indexed":true,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":942,"src":"64:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":935,"name":"address","nodeType":"ElementaryTypeName","src":"64:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":938,"indexed":true,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":942,"src":"87:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":937,"name":"address","nodeType":"ElementaryTypeName","src":"87:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":940,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":942,"src":"112:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":939,"name":"uint","nodeType":"ElementaryTypeName","src":"112:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63:60:8"},"src":"49:75:8"},{"anonymous":false,"id":950,"name":"Transfer","nodeType":"EventDefinition","parameters":{"id":949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":944,"indexed":true,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","scope":950,"src":"144:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":943,"name":"address","nodeType":"ElementaryTypeName","src":"144:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":946,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":950,"src":"166:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":945,"name":"address","nodeType":"ElementaryTypeName","src":"166:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":948,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":950,"src":"186:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":947,"name":"uint","nodeType":"ElementaryTypeName","src":"186:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"143:54:8"},"src":"129:69:8"},{"functionSelector":"06fdde03","id":955,"implemented":false,"kind":"function","modifiers":[],"name":"name","nodeType":"FunctionDefinition","parameters":{"id":951,"nodeType":"ParameterList","parameters":[],"src":"217:2:8"},"returnParameters":{"id":954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":953,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":955,"src":"243:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":952,"name":"string","nodeType":"ElementaryTypeName","src":"243:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"242:15:8"},"scope":1016,"src":"204:54:8","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":960,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nodeType":"FunctionDefinition","parameters":{"id":956,"nodeType":"ParameterList","parameters":[],"src":"278:2:8"},"returnParameters":{"id":959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":958,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":960,"src":"304:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":957,"name":"string","nodeType":"ElementaryTypeName","src":"304:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"303:15:8"},"scope":1016,"src":"263:56:8","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":965,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nodeType":"FunctionDefinition","parameters":{"id":961,"nodeType":"ParameterList","parameters":[],"src":"341:2:8"},"returnParameters":{"id":964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":963,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":965,"src":"367:5:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":962,"name":"uint8","nodeType":"ElementaryTypeName","src":"367:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"366:7:8"},"scope":1016,"src":"324:50:8","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":970,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","parameters":{"id":966,"nodeType":"ParameterList","parameters":[],"src":"399:2:8"},"returnParameters":{"id":969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":968,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":970,"src":"425:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":967,"name":"uint","nodeType":"ElementaryTypeName","src":"425:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"424:6:8"},"scope":1016,"src":"379:52:8","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":977,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":972,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":977,"src":"455:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":971,"name":"address","nodeType":"ElementaryTypeName","src":"455:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"454:15:8"},"returnParameters":{"id":976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":975,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":977,"src":"493:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":974,"name":"uint","nodeType":"ElementaryTypeName","src":"493:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"492:6:8"},"scope":1016,"src":"436:63:8","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"dd62ed3e","id":986,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nodeType":"FunctionDefinition","parameters":{"id":982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":979,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":986,"src":"523:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":978,"name":"address","nodeType":"ElementaryTypeName","src":"523:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":981,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":986,"src":"538:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":980,"name":"address","nodeType":"ElementaryTypeName","src":"538:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"522:32:8"},"returnParameters":{"id":985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":984,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":986,"src":"578:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":983,"name":"uint","nodeType":"ElementaryTypeName","src":"578:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"577:6:8"},"scope":1016,"src":"504:80:8","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":995,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":988,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","scope":995,"src":"607:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":987,"name":"address","nodeType":"ElementaryTypeName","src":"607:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":990,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":995,"src":"624:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":989,"name":"uint","nodeType":"ElementaryTypeName","src":"624:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"606:29:8"},"returnParameters":{"id":994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":993,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":995,"src":"654:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":992,"name":"bool","nodeType":"ElementaryTypeName","src":"654:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"653:6:8"},"scope":1016,"src":"590:70:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":1004,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":1000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":997,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":1004,"src":"683:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":996,"name":"address","nodeType":"ElementaryTypeName","src":"683:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":999,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":1004,"src":"695:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":998,"name":"uint","nodeType":"ElementaryTypeName","src":"695:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"682:24:8"},"returnParameters":{"id":1003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1002,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1004,"src":"725:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1001,"name":"bool","nodeType":"ElementaryTypeName","src":"725:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"724:6:8"},"scope":1016,"src":"665:66:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":1015,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":1011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1006,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","scope":1015,"src":"758:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1005,"name":"address","nodeType":"ElementaryTypeName","src":"758:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1008,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":1015,"src":"772:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1007,"name":"address","nodeType":"ElementaryTypeName","src":"772:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1010,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":1015,"src":"784:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1009,"name":"uint","nodeType":"ElementaryTypeName","src":"784:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"757:38:8"},"returnParameters":{"id":1014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1013,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1015,"src":"814:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1012,"name":"bool","nodeType":"ElementaryTypeName","src":"814:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"813:6:8"},"scope":1016,"src":"736:84:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1017,"src":"26:796:8"}],"src":"0:823:8"},"id":8},"contracts/periphery/interfaces/ISAMB.sol":{"ast":{"absolutePath":"contracts/periphery/interfaces/ISAMB.sol","exportedSymbols":{"ISAMB":[1036]},"id":1037,"nodeType":"SourceUnit","nodes":[{"id":1018,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:9"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1036,"linearizedBaseContracts":[1036],"name":"ISAMB","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d0e30db0","id":1021,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nodeType":"FunctionDefinition","parameters":{"id":1019,"nodeType":"ParameterList","parameters":[],"src":"64:2:9"},"returnParameters":{"id":1020,"nodeType":"ParameterList","parameters":[],"src":"83:0:9"},"scope":1036,"src":"48:36:9","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":1030,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":1026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1023,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":1030,"src":"107:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1022,"name":"address","nodeType":"ElementaryTypeName","src":"107:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1025,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":1030,"src":"119:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1024,"name":"uint","nodeType":"ElementaryTypeName","src":"119:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"106:24:9"},"returnParameters":{"id":1029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1028,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1030,"src":"149:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1027,"name":"bool","nodeType":"ElementaryTypeName","src":"149:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"148:6:9"},"scope":1036,"src":"89:66:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2e1a7d4d","id":1035,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nodeType":"FunctionDefinition","parameters":{"id":1033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1032,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1035,"src":"178:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1031,"name":"uint","nodeType":"ElementaryTypeName","src":"178:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"177:6:9"},"returnParameters":{"id":1034,"nodeType":"ParameterList","parameters":[],"src":"192:0:9"},"scope":1036,"src":"160:33:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1037,"src":"26:169:9"}],"src":"0:196:9"},"id":9},"contracts/periphery/interfaces/V1/IAstraV1Exchange.sol":{"ast":{"absolutePath":"contracts/periphery/interfaces/V1/IAstraV1Exchange.sol","exportedSymbols":{"IAstraV1Exchange":[1092]},"id":1093,"nodeType":"SourceUnit","nodes":[{"id":1038,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:10"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1092,"linearizedBaseContracts":[1092],"name":"IAstraV1Exchange","nodeType":"ContractDefinition","nodes":[{"functionSelector":"70a08231","id":1045,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":1041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1040,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":1045,"src":"78:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1039,"name":"address","nodeType":"ElementaryTypeName","src":"78:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"77:15:10"},"returnParameters":{"id":1044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1043,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1045,"src":"116:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1042,"name":"uint","nodeType":"ElementaryTypeName","src":"116:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"115:6:10"},"scope":1092,"src":"59:63:10","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":1056,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":1052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1047,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","scope":1056,"src":"149:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1046,"name":"address","nodeType":"ElementaryTypeName","src":"149:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1049,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":1056,"src":"163:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1048,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1051,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":1056,"src":"175:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1050,"name":"uint","nodeType":"ElementaryTypeName","src":"175:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"148:38:10"},"returnParameters":{"id":1055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1054,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1056,"src":"205:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1053,"name":"bool","nodeType":"ElementaryTypeName","src":"205:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"204:6:10"},"scope":1092,"src":"127:84:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f88bf15a","id":1071,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidity","nodeType":"FunctionDefinition","parameters":{"id":1065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1058,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1071,"src":"241:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1057,"name":"uint","nodeType":"ElementaryTypeName","src":"241:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1060,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1071,"src":"247:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1059,"name":"uint","nodeType":"ElementaryTypeName","src":"247:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1062,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1071,"src":"253:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1061,"name":"uint","nodeType":"ElementaryTypeName","src":"253:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1064,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1071,"src":"259:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1063,"name":"uint","nodeType":"ElementaryTypeName","src":"259:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"240:24:10"},"returnParameters":{"id":1070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1067,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1071,"src":"283:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1066,"name":"uint","nodeType":"ElementaryTypeName","src":"283:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1069,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1071,"src":"289:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1068,"name":"uint","nodeType":"ElementaryTypeName","src":"289:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"282:12:10"},"scope":1092,"src":"216:79:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"61862169","id":1082,"implemented":false,"kind":"function","modifiers":[],"name":"tokenToAMBSwapInput","nodeType":"FunctionDefinition","parameters":{"id":1078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1073,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1082,"src":"329:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1072,"name":"uint","nodeType":"ElementaryTypeName","src":"329:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1075,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1082,"src":"335:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1074,"name":"uint","nodeType":"ElementaryTypeName","src":"335:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1077,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1082,"src":"341:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1076,"name":"uint","nodeType":"ElementaryTypeName","src":"341:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"328:18:10"},"returnParameters":{"id":1081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1080,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1082,"src":"365:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1079,"name":"uint","nodeType":"ElementaryTypeName","src":"365:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"364:6:10"},"scope":1092,"src":"300:71:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b11c839c","id":1091,"implemented":false,"kind":"function","modifiers":[],"name":"AMBToTokenSwapInput","nodeType":"FunctionDefinition","parameters":{"id":1087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1084,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1091,"src":"405:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1083,"name":"uint","nodeType":"ElementaryTypeName","src":"405:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1086,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1091,"src":"411:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1085,"name":"uint","nodeType":"ElementaryTypeName","src":"411:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"404:12:10"},"returnParameters":{"id":1090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1089,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1091,"src":"443:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1088,"name":"uint","nodeType":"ElementaryTypeName","src":"443:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"442:6:10"},"scope":1092,"src":"376:73:10","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":1093,"src":"26:425:10"}],"src":"0:452:10"},"id":10},"contracts/periphery/interfaces/V1/IAstraV1Factory.sol":{"ast":{"absolutePath":"contracts/periphery/interfaces/V1/IAstraV1Factory.sol","exportedSymbols":{"IAstraV1Factory":[1102]},"id":1103,"nodeType":"SourceUnit","nodes":[{"id":1094,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:11"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1102,"linearizedBaseContracts":[1102],"name":"IAstraV1Factory","nodeType":"ContractDefinition","nodes":[{"functionSelector":"06f2bf62","id":1101,"implemented":false,"kind":"function","modifiers":[],"name":"getExchange","nodeType":"FunctionDefinition","parameters":{"id":1097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1096,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1101,"src":"79:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1095,"name":"address","nodeType":"ElementaryTypeName","src":"79:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"78:9:11"},"returnParameters":{"id":1100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1099,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1101,"src":"111:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1098,"name":"address","nodeType":"ElementaryTypeName","src":"111:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"110:9:11"},"scope":1102,"src":"58:62:11","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1103,"src":"26:96:11"}],"src":"0:123:11"},"id":11},"contracts/periphery/libraries/AstraOracleLibrary.sol":{"ast":{"absolutePath":"contracts/periphery/libraries/AstraOracleLibrary.sol","exportedSymbols":{"AstraOracleLibrary":[1209],"Babylonian":[1412],"BitMath":[1690],"FixedPoint":[2319],"FullMath":[2540],"IAstraPair":[436]},"id":1210,"nodeType":"SourceUnit","nodes":[{"id":1104,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:12"},{"absolutePath":"contracts/core/interfaces/IAstraPair.sol","file":"../../core/interfaces/IAstraPair.sol","id":1105,"nodeType":"ImportDirective","scope":1210,"sourceUnit":437,"src":"26:46:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/periphery/libraries/FixedPoint.sol","file":"./FixedPoint.sol","id":1106,"nodeType":"ImportDirective","scope":1210,"sourceUnit":2320,"src":"73:26:12","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":1209,"linearizedBaseContracts":[1209],"name":"AstraOracleLibrary","nodeType":"ContractDefinition","nodes":[{"id":1108,"libraryName":{"id":1107,"name":"FixedPoint","nodeType":"UserDefinedTypeName","referencedDeclaration":2319,"src":"232:10:12","typeDescriptions":{"typeIdentifier":"t_contract$_FixedPoint_$2319","typeString":"library FixedPoint"}},"nodeType":"UsingForDirective","src":"226:23:12"},{"body":{"id":1123,"nodeType":"Block","src":"431:57:12","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1115,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"455:5:12","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"455:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":1119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"473:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":1118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"478:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"473:7:12","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"src":"455:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"448:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":1113,"name":"uint32","nodeType":"ElementaryTypeName","src":"448:6:12","typeDescriptions":{}}},"id":1121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"448:33:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":1112,"id":1122,"nodeType":"Return","src":"441:40:12"}]},"id":1124,"implemented":true,"kind":"function","modifiers":[],"name":"currentBlockTimestamp","nodeType":"FunctionDefinition","parameters":{"id":1109,"nodeType":"ParameterList","parameters":[],"src":"397:2:12"},"returnParameters":{"id":1112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1111,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1124,"src":"423:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1110,"name":"uint32","nodeType":"ElementaryTypeName","src":"423:6:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"422:8:12"},"scope":1209,"src":"367:121:12","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1207,"nodeType":"Block","src":"744:875:12","statements":[{"expression":{"id":1138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1135,"name":"blockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1133,"src":"754:14:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":1136,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1124,"src":"771:21:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint32_$","typeString":"function () view returns (uint32)"}},"id":1137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"771:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"754:40:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":1139,"nodeType":"ExpressionStatement","src":"754:40:12"},{"expression":{"id":1146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1140,"name":"price0Cumulative","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"804:16:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":1142,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1126,"src":"834:4:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1141,"name":"IAstraPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"823:10:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAstraPair_$436_$","typeString":"type(contract IAstraPair)"}},"id":1143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"823:16:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAstraPair_$436","typeString":"contract IAstraPair"}},"id":1144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"price0CumulativeLast","nodeType":"MemberAccess","referencedDeclaration":383,"src":"823:37:12","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":1145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"823:39:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"804:58:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1147,"nodeType":"ExpressionStatement","src":"804:58:12"},{"expression":{"id":1154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1148,"name":"price1Cumulative","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1131,"src":"872:16:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":1150,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1126,"src":"902:4:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1149,"name":"IAstraPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"891:10:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAstraPair_$436_$","typeString":"type(contract IAstraPair)"}},"id":1151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"891:16:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAstraPair_$436","typeString":"contract IAstraPair"}},"id":1152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"price1CumulativeLast","nodeType":"MemberAccess","referencedDeclaration":388,"src":"891:37:12","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":1153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"891:39:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"872:58:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1155,"nodeType":"ExpressionStatement","src":"872:58:12"},{"assignments":[1157,1159,1161],"declarations":[{"constant":false,"id":1157,"mutability":"mutable","name":"reserve0","nodeType":"VariableDeclaration","scope":1207,"src":"1042:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":1156,"name":"uint112","nodeType":"ElementaryTypeName","src":"1042:7:12","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":1159,"mutability":"mutable","name":"reserve1","nodeType":"VariableDeclaration","scope":1207,"src":"1060:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":1158,"name":"uint112","nodeType":"ElementaryTypeName","src":"1060:7:12","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":1161,"mutability":"mutable","name":"blockTimestampLast","nodeType":"VariableDeclaration","scope":1207,"src":"1078:25:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1160,"name":"uint32","nodeType":"ElementaryTypeName","src":"1078:6:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":1167,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":1163,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1126,"src":"1118:4:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1162,"name":"IAstraPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"1107:10:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAstraPair_$436_$","typeString":"type(contract IAstraPair)"}},"id":1164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1107:16:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAstraPair_$436","typeString":"contract IAstraPair"}},"id":1165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getReserves","nodeType":"MemberAccess","referencedDeclaration":378,"src":"1107:28:12","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"function () view external returns (uint112,uint112,uint32)"}},"id":1166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1107:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"tuple(uint112,uint112,uint32)"}},"nodeType":"VariableDeclarationStatement","src":"1041:96:12"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":1170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1168,"name":"blockTimestampLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"1151:18:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1169,"name":"blockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1133,"src":"1173:14:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1151:36:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1206,"nodeType":"IfStatement","src":"1147:466:12","trueBody":{"id":1205,"nodeType":"Block","src":"1189:424:12","statements":[{"assignments":[1172],"declarations":[{"constant":false,"id":1172,"mutability":"mutable","name":"timeElapsed","nodeType":"VariableDeclaration","scope":1205,"src":"1250:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1171,"name":"uint32","nodeType":"ElementaryTypeName","src":"1250:6:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":1176,"initialValue":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":1175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1173,"name":"blockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1133,"src":"1271:14:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1174,"name":"blockTimestampLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"1288:18:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1271:35:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"1250:56:12"},{"expression":{"id":1189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1177,"name":"price0Cumulative","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"1394:16:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"arguments":[{"id":1182,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"1439:8:12","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},{"id":1183,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"1449:8:12","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"},{"typeIdentifier":"t_uint112","typeString":"uint112"}],"expression":{"id":1180,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2319,"src":"1419:10:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$2319_$","typeString":"type(library FixedPoint)"}},"id":1181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":2210,"src":"1419:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_struct$_uq112x112_$1698_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (struct FixedPoint.uq112x112 memory)"}},"id":1184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1419:39:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"1419:42:12","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":1179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1414:4:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1178,"name":"uint","nodeType":"ElementaryTypeName","src":"1414:4:12","typeDescriptions":{}}},"id":1186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:48:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1187,"name":"timeElapsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1172,"src":"1465:11:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1414:62:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1394:82:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1190,"nodeType":"ExpressionStatement","src":"1394:82:12"},{"expression":{"id":1203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1191,"name":"price1Cumulative","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1131,"src":"1520:16:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"arguments":[{"id":1196,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"1565:8:12","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},{"id":1197,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"1575:8:12","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"},{"typeIdentifier":"t_uint112","typeString":"uint112"}],"expression":{"id":1194,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2319,"src":"1545:10:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$2319_$","typeString":"type(library FixedPoint)"}},"id":1195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":2210,"src":"1545:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_struct$_uq112x112_$1698_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (struct FixedPoint.uq112x112 memory)"}},"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1545:39:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"1545:42:12","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":1193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1540:4:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1192,"name":"uint","nodeType":"ElementaryTypeName","src":"1540:4:12","typeDescriptions":{}}},"id":1200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1540:48:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1201,"name":"timeElapsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1172,"src":"1591:11:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1540:62:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1520:82:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1204,"nodeType":"ExpressionStatement","src":"1520:82:12"}]}}]},"id":1208,"implemented":true,"kind":"function","modifiers":[],"name":"currentCumulativePrices","nodeType":"FunctionDefinition","parameters":{"id":1127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1126,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","scope":1208,"src":"633:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1125,"name":"address","nodeType":"ElementaryTypeName","src":"633:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"623:28:12"},"returnParameters":{"id":1134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1129,"mutability":"mutable","name":"price0Cumulative","nodeType":"VariableDeclaration","scope":1208,"src":"675:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1128,"name":"uint","nodeType":"ElementaryTypeName","src":"675:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1131,"mutability":"mutable","name":"price1Cumulative","nodeType":"VariableDeclaration","scope":1208,"src":"698:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1130,"name":"uint","nodeType":"ElementaryTypeName","src":"698:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1133,"mutability":"mutable","name":"blockTimestamp","nodeType":"VariableDeclaration","scope":1208,"src":"721:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1132,"name":"uint32","nodeType":"ElementaryTypeName","src":"721:6:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"674:69:12"},"scope":1209,"src":"591:1028:12","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":1210,"src":"193:1428:12"}],"src":"0:1622:12"},"id":12},"contracts/periphery/libraries/Babylonian.sol":{"ast":{"absolutePath":"contracts/periphery/libraries/Babylonian.sol","exportedSymbols":{"Babylonian":[1412]},"id":1413,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1211,"literals":["solidity",">=","0.4",".0"],"nodeType":"PragmaDirective","src":"46:24:13"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":1412,"linearizedBaseContracts":[1412],"name":"Babylonian","nodeType":"ContractDefinition","nodes":[{"body":{"id":1410,"nodeType":"Block","src":"439:1140:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1218,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"453:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"458:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"453:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1223,"nodeType":"IfStatement","src":"449:20:13","trueBody":{"expression":{"hexValue":"30","id":1221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"468:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1217,"id":1222,"nodeType":"Return","src":"461:8:13"}},{"assignments":[1225],"declarations":[{"constant":false,"id":1225,"mutability":"mutable","name":"xx","nodeType":"VariableDeclaration","scope":1410,"src":"631:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1224,"name":"uint256","nodeType":"ElementaryTypeName","src":"631:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1227,"initialValue":{"id":1226,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"644:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"631:14:13"},{"assignments":[1229],"declarations":[{"constant":false,"id":1229,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":1410,"src":"655:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1228,"name":"uint256","nodeType":"ElementaryTypeName","src":"655:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1231,"initialValue":{"hexValue":"31","id":1230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"655:13:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1232,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"682:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":1233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"688:35:13","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"src":"682:41:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1244,"nodeType":"IfStatement","src":"678:104:13","trueBody":{"id":1243,"nodeType":"Block","src":"725:57:13","statements":[{"expression":{"id":1237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1235,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"739:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":1236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"746:3:13","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"739:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1238,"nodeType":"ExpressionStatement","src":"739:10:13"},{"expression":{"id":1241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1239,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"763:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3634","id":1240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"769:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"763:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1242,"nodeType":"ExpressionStatement","src":"763:8:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1245,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"795:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783130303030303030303030303030303030","id":1246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"801:19:13","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"src":"795:25:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1257,"nodeType":"IfStatement","src":"791:87:13","trueBody":{"id":1256,"nodeType":"Block","src":"822:56:13","statements":[{"expression":{"id":1250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1248,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"836:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":1249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"843:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"836:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1251,"nodeType":"ExpressionStatement","src":"836:9:13"},{"expression":{"id":1254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1252,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"859:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3332","id":1253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"865:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"859:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1255,"nodeType":"ExpressionStatement","src":"859:8:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1258,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"891:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3078313030303030303030","id":1259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"897:11:13","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"value":"0x100000000"},"src":"891:17:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1270,"nodeType":"IfStatement","src":"887:79:13","trueBody":{"id":1269,"nodeType":"Block","src":"910:56:13","statements":[{"expression":{"id":1263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1261,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"924:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":1262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"924:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1264,"nodeType":"ExpressionStatement","src":"924:9:13"},{"expression":{"id":1267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1265,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"947:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3136","id":1266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"953:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"947:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1268,"nodeType":"ExpressionStatement","src":"947:8:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1271,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"979:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783130303030","id":1272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"985:7:13","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"value":"0x10000"},"src":"979:13:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1283,"nodeType":"IfStatement","src":"975:74:13","trueBody":{"id":1282,"nodeType":"Block","src":"994:55:13","statements":[{"expression":{"id":1276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1274,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"1008:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":1275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1015:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1008:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1277,"nodeType":"ExpressionStatement","src":"1008:9:13"},{"expression":{"id":1280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1278,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1031:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"38","id":1279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1037:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1031:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1281,"nodeType":"ExpressionStatement","src":"1031:7:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1284,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"1062:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3078313030","id":1285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1068:5:13","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"0x100"},"src":"1062:11:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1296,"nodeType":"IfStatement","src":"1058:71:13","trueBody":{"id":1295,"nodeType":"Block","src":"1075:54:13","statements":[{"expression":{"id":1289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1287,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"1089:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":1288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1096:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1089:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1290,"nodeType":"ExpressionStatement","src":"1089:8:13"},{"expression":{"id":1293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1291,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1111:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"34","id":1292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1117:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1111:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1294,"nodeType":"ExpressionStatement","src":"1111:7:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1297,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"1142:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783130","id":1298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1148:4:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x10"},"src":"1142:10:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1309,"nodeType":"IfStatement","src":"1138:70:13","trueBody":{"id":1308,"nodeType":"Block","src":"1154:54:13","statements":[{"expression":{"id":1302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1300,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"1168:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":1301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1175:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1168:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1303,"nodeType":"ExpressionStatement","src":"1168:8:13"},{"expression":{"id":1306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1304,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1190:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"32","id":1305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1196:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1190:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1307,"nodeType":"ExpressionStatement","src":"1190:7:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1310,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"1221:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"307838","id":1311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1227:3:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"0x8"},"src":"1221:9:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1318,"nodeType":"IfStatement","src":"1217:47:13","trueBody":{"id":1317,"nodeType":"Block","src":"1232:32:13","statements":[{"expression":{"id":1315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1313,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1246:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"31","id":1314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1252:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1246:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1316,"nodeType":"ExpressionStatement","src":"1246:7:13"}]}},{"expression":{"id":1328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1319,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1273:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1320,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1278:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1321,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"1282:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1322,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1286:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1282:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1278:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1325,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1277:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1292:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1277:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1273:20:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1329,"nodeType":"ExpressionStatement","src":"1273:20:13"},{"expression":{"id":1339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1330,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1303:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1331,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1308:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1332,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"1312:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1333,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1316:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1312:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1308:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1336,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1307:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1322:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1307:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1303:20:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1340,"nodeType":"ExpressionStatement","src":"1303:20:13"},{"expression":{"id":1350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1341,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1333:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1342,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1338:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1343,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"1342:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1344,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1346:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1342:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1338:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1347,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1337:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1352:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1337:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1333:20:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1351,"nodeType":"ExpressionStatement","src":"1333:20:13"},{"expression":{"id":1361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1352,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1363:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1353,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1368:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1354,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"1372:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1355,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1376:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1372:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1368:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1367:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1382:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1367:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1363:20:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1362,"nodeType":"ExpressionStatement","src":"1363:20:13"},{"expression":{"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1363,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1393:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1364,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1398:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1365,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"1402:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1366,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1406:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1402:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1398:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1369,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1397:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1412:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1397:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1393:20:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1373,"nodeType":"ExpressionStatement","src":"1393:20:13"},{"expression":{"id":1383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1374,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1423:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1375,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1428:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1376,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"1432:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1377,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1436:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1432:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1428:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1380,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1427:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1442:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1427:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1423:20:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1384,"nodeType":"ExpressionStatement","src":"1423:20:13"},{"expression":{"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1385,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1453:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1386,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1458:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1387,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"1462:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1388,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1466:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1462:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1458:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1391,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1457:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1472:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1457:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1453:20:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1395,"nodeType":"ExpressionStatement","src":"1453:20:13"},{"assignments":[1397],"declarations":[{"constant":false,"id":1397,"mutability":"mutable","name":"r1","nodeType":"VariableDeclaration","scope":1410,"src":"1520:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1396,"name":"uint256","nodeType":"ElementaryTypeName","src":"1520:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1401,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1398,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"1533:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1399,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1537:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1533:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1520:18:13"},{"expression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1402,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1556:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1403,"name":"r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1397,"src":"1560:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1556:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1406,"name":"r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1397,"src":"1569:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1556:15:13","trueExpression":{"id":1405,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"1565:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1408,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1555:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1217,"id":1409,"nodeType":"Return","src":"1548:24:13"}]},"id":1411,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nodeType":"FunctionDefinition","parameters":{"id":1214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1213,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","scope":1411,"src":"396:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1212,"name":"uint256","nodeType":"ElementaryTypeName","src":"396:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"395:11:13"},"returnParameters":{"id":1217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1216,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1411,"src":"430:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1215,"name":"uint256","nodeType":"ElementaryTypeName","src":"430:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"429:9:13"},"scope":1412,"src":"382:1197:13","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1413,"src":"210:1371:13"}],"src":"46:1536:13"},"id":13},"contracts/periphery/libraries/BitMath.sol":{"ast":{"absolutePath":"contracts/periphery/libraries/BitMath.sol","exportedSymbols":{"BitMath":[1690]},"id":1691,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1414,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:14"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":1690,"linearizedBaseContracts":[1690],"name":"BitMath","nodeType":"ContractDefinition","nodes":[{"body":{"id":1527,"nodeType":"Block","src":"288:697:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1422,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"306:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"310:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"306:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4269744d6174683a3a6d6f73745369676e69666963616e744269743a207a65726f","id":1425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"313:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_03c73b0187854c5090030bbfe0f7d97709bd7eabff8b89faf5be84b9d8c785d2","typeString":"literal_string \"BitMath::mostSignificantBit: zero\""},"value":"BitMath::mostSignificantBit: zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_03c73b0187854c5090030bbfe0f7d97709bd7eabff8b89faf5be84b9d8c785d2","typeString":"literal_string \"BitMath::mostSignificantBit: zero\""}],"id":1421,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"298:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"298:51:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1427,"nodeType":"ExpressionStatement","src":"298:51:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1428,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"364:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":1429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"369:35:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"src":"364:40:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1440,"nodeType":"IfStatement","src":"360:102:14","trueBody":{"id":1439,"nodeType":"Block","src":"406:56:14","statements":[{"expression":{"id":1433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1431,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"420:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":1432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"426:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"420:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1434,"nodeType":"ExpressionStatement","src":"420:9:14"},{"expression":{"id":1437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1435,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"443:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":1436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"448:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"443:8:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1438,"nodeType":"ExpressionStatement","src":"443:8:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1441,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"475:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783130303030303030303030303030303030","id":1442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"480:19:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"src":"475:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1453,"nodeType":"IfStatement","src":"471:84:14","trueBody":{"id":1452,"nodeType":"Block","src":"501:54:14","statements":[{"expression":{"id":1446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1444,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"515:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":1445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"521:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"515:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1447,"nodeType":"ExpressionStatement","src":"515:8:14"},{"expression":{"id":1450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1448,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"537:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":1449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"542:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"537:7:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1451,"nodeType":"ExpressionStatement","src":"537:7:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1454,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"568:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3078313030303030303030","id":1455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"573:11:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"value":"0x100000000"},"src":"568:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1466,"nodeType":"IfStatement","src":"564:76:14","trueBody":{"id":1465,"nodeType":"Block","src":"586:54:14","statements":[{"expression":{"id":1459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1457,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"600:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":1458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"606:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"600:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1460,"nodeType":"ExpressionStatement","src":"600:8:14"},{"expression":{"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1461,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"622:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"627:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"622:7:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1464,"nodeType":"ExpressionStatement","src":"622:7:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1467,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"653:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783130303030","id":1468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"658:7:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"value":"0x10000"},"src":"653:12:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1479,"nodeType":"IfStatement","src":"649:72:14","trueBody":{"id":1478,"nodeType":"Block","src":"667:54:14","statements":[{"expression":{"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1470,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"681:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":1471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"687:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"681:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1473,"nodeType":"ExpressionStatement","src":"681:8:14"},{"expression":{"id":1476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1474,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"703:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":1475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"708:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"703:7:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1477,"nodeType":"ExpressionStatement","src":"703:7:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1480,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"734:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3078313030","id":1481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"739:5:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"0x100"},"src":"734:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1492,"nodeType":"IfStatement","src":"730:68:14","trueBody":{"id":1491,"nodeType":"Block","src":"746:52:14","statements":[{"expression":{"id":1485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1483,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"760:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":1484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"766:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"760:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1486,"nodeType":"ExpressionStatement","src":"760:7:14"},{"expression":{"id":1489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1487,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"781:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":1488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"786:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"781:6:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1490,"nodeType":"ExpressionStatement","src":"781:6:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1493,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"811:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783130","id":1494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"816:4:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x10"},"src":"811:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1505,"nodeType":"IfStatement","src":"807:67:14","trueBody":{"id":1504,"nodeType":"Block","src":"822:52:14","statements":[{"expression":{"id":1498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1496,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"836:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":1497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"842:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"836:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1499,"nodeType":"ExpressionStatement","src":"836:7:14"},{"expression":{"id":1502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1500,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"857:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":1501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"862:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"857:6:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1503,"nodeType":"ExpressionStatement","src":"857:6:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1506,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"887:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"307834","id":1507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"892:3:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x4"},"src":"887:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1518,"nodeType":"IfStatement","src":"883:66:14","trueBody":{"id":1517,"nodeType":"Block","src":"897:52:14","statements":[{"expression":{"id":1511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1509,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"911:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":1510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"917:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"911:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1512,"nodeType":"ExpressionStatement","src":"911:7:14"},{"expression":{"id":1515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1513,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"932:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":1514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"932:6:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1516,"nodeType":"ExpressionStatement","src":"932:6:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1519,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1416,"src":"962:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"307832","id":1520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"967:3:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x2"},"src":"962:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1526,"nodeType":"IfStatement","src":"958:20:14","trueBody":{"expression":{"id":1524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1522,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"972:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":1523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"977:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"972:6:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1525,"nodeType":"ExpressionStatement","src":"972:6:14"}}]},"id":1528,"implemented":true,"kind":"function","modifiers":[],"name":"mostSignificantBit","nodeType":"FunctionDefinition","parameters":{"id":1417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1416,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","scope":1528,"src":"245:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1415,"name":"uint256","nodeType":"ElementaryTypeName","src":"245:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"244:11:14"},"returnParameters":{"id":1420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1419,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":1528,"src":"279:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1418,"name":"uint8","nodeType":"ElementaryTypeName","src":"279:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"278:9:14"},"scope":1690,"src":"217:768:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1688,"nodeType":"Block","src":"1282:830:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1536,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1300:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1304:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1300:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4269744d6174683a3a6c656173745369676e69666963616e744269743a207a65726f","id":1539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1307:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cedc9c6217b2cedc06d11ed96db2989630b9045493eb849d6df363a9a5eb1c43","typeString":"literal_string \"BitMath::leastSignificantBit: zero\""},"value":"BitMath::leastSignificantBit: zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cedc9c6217b2cedc06d11ed96db2989630b9045493eb849d6df363a9a5eb1c43","typeString":"literal_string \"BitMath::leastSignificantBit: zero\""}],"id":1535,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1292:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1292:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1541,"nodeType":"ExpressionStatement","src":"1292:52:14"},{"expression":{"id":1544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1542,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1533,"src":"1355:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323535","id":1543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1359:3:14","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"1355:7:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1545,"nodeType":"ExpressionStatement","src":"1355:7:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1546,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1376:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"id":1550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1388:2:14","subExpression":{"hexValue":"31","id":1549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1389:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":1548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1380:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":1547,"name":"uint128","nodeType":"ElementaryTypeName","src":"1380:7:14","typeDescriptions":{}}},"id":1551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1380:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1376:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1394:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1376:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1564,"nodeType":"Block","src":"1436:34:14","statements":[{"expression":{"id":1562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1560,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1450:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":1561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1456:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"1450:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1563,"nodeType":"ExpressionStatement","src":"1450:9:14"}]},"id":1565,"nodeType":"IfStatement","src":"1372:98:14","trueBody":{"id":1559,"nodeType":"Block","src":"1397:33:14","statements":[{"expression":{"id":1557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1555,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1533,"src":"1411:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"313238","id":1556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1416:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"1411:8:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1558,"nodeType":"ExpressionStatement","src":"1411:8:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1566,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1483:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"id":1570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1494:2:14","subExpression":{"hexValue":"31","id":1569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1495:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":1568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1487:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1567,"name":"uint64","nodeType":"ElementaryTypeName","src":"1487:6:14","typeDescriptions":{}}},"id":1571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1487:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1483:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1500:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1483:18:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1584,"nodeType":"Block","src":"1541:33:14","statements":[{"expression":{"id":1582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1580,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1555:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":1581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1561:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"1555:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1583,"nodeType":"ExpressionStatement","src":"1555:8:14"}]},"id":1585,"nodeType":"IfStatement","src":"1479:95:14","trueBody":{"id":1579,"nodeType":"Block","src":"1503:32:14","statements":[{"expression":{"id":1577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1575,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1533,"src":"1517:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3634","id":1576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1522:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"1517:7:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1578,"nodeType":"ExpressionStatement","src":"1517:7:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1586,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1587:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"id":1590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1598:2:14","subExpression":{"hexValue":"31","id":1589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1599:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":1588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1591:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":1587,"name":"uint32","nodeType":"ElementaryTypeName","src":"1591:6:14","typeDescriptions":{}}},"id":1591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1591:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1587:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1604:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1587:18:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1604,"nodeType":"Block","src":"1645:33:14","statements":[{"expression":{"id":1602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1600,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1659:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":1601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1665:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1659:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1603,"nodeType":"ExpressionStatement","src":"1659:8:14"}]},"id":1605,"nodeType":"IfStatement","src":"1583:95:14","trueBody":{"id":1599,"nodeType":"Block","src":"1607:32:14","statements":[{"expression":{"id":1597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1595,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1533,"src":"1621:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":1596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1626:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1621:7:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1598,"nodeType":"ExpressionStatement","src":"1621:7:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1606,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1691:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"id":1610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1702:2:14","subExpression":{"hexValue":"31","id":1609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1703:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":1608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1695:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":1607,"name":"uint16","nodeType":"ElementaryTypeName","src":"1695:6:14","typeDescriptions":{}}},"id":1611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1695:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1691:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1708:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1691:18:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1624,"nodeType":"Block","src":"1749:33:14","statements":[{"expression":{"id":1622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1620,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1763:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":1621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1769:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1763:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1623,"nodeType":"ExpressionStatement","src":"1763:8:14"}]},"id":1625,"nodeType":"IfStatement","src":"1687:95:14","trueBody":{"id":1619,"nodeType":"Block","src":"1711:32:14","statements":[{"expression":{"id":1617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1615,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1533,"src":"1725:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3136","id":1616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1730:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1725:7:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1618,"nodeType":"ExpressionStatement","src":"1725:7:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1626,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1795:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"id":1630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1805:2:14","subExpression":{"hexValue":"31","id":1629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1806:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":1628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1799:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1627,"name":"uint8","nodeType":"ElementaryTypeName","src":"1799:5:14","typeDescriptions":{}}},"id":1631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1799:9:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1795:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1811:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1795:17:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1644,"nodeType":"Block","src":"1851:32:14","statements":[{"expression":{"id":1642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1640,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1865:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":1641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1871:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1865:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1643,"nodeType":"ExpressionStatement","src":"1865:7:14"}]},"id":1645,"nodeType":"IfStatement","src":"1791:92:14","trueBody":{"id":1639,"nodeType":"Block","src":"1814:31:14","statements":[{"expression":{"id":1637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1635,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1533,"src":"1828:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"38","id":1636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1833:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1828:6:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1638,"nodeType":"ExpressionStatement","src":"1828:6:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1646,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1896:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":1647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1900:3:14","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1896:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1906:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1896:11:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1660,"nodeType":"Block","src":"1946:32:14","statements":[{"expression":{"id":1658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1656,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1960:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":1657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1966:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1960:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1659,"nodeType":"ExpressionStatement","src":"1960:7:14"}]},"id":1661,"nodeType":"IfStatement","src":"1892:86:14","trueBody":{"id":1655,"nodeType":"Block","src":"1909:31:14","statements":[{"expression":{"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1651,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1533,"src":"1923:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"34","id":1652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1928:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1923:6:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1654,"nodeType":"ExpressionStatement","src":"1923:6:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1662,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"1991:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307833","id":1663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1995:3:14","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"0x3"},"src":"1991:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2001:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1991:11:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1676,"nodeType":"Block","src":"2041:32:14","statements":[{"expression":{"id":1674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1672,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2055:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":1673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2061:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2055:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1675,"nodeType":"ExpressionStatement","src":"2055:7:14"}]},"id":1677,"nodeType":"IfStatement","src":"1987:86:14","trueBody":{"id":1671,"nodeType":"Block","src":"2004:31:14","statements":[{"expression":{"id":1669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1667,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1533,"src":"2018:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"32","id":1668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2023:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2018:6:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1670,"nodeType":"ExpressionStatement","src":"2018:6:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1678,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1530,"src":"2086:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307831","id":1679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2090:3:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"},"src":"2086:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2096:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2086:11:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1687,"nodeType":"IfStatement","src":"2082:23:14","trueBody":{"expression":{"id":1685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1683,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1533,"src":"2099:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":1684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2104:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2099:6:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1686,"nodeType":"ExpressionStatement","src":"2099:6:14"}}]},"id":1689,"implemented":true,"kind":"function","modifiers":[],"name":"leastSignificantBit","nodeType":"FunctionDefinition","parameters":{"id":1531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1530,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","scope":1689,"src":"1239:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1529,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1238:11:14"},"returnParameters":{"id":1534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1533,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":1689,"src":"1273:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1532,"name":"uint8","nodeType":"ElementaryTypeName","src":"1273:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1272:9:14"},"scope":1690,"src":"1210:902:14","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1691,"src":"71:2043:14"}],"src":"45:2070:14"},"id":14},"contracts/periphery/libraries/FixedPoint.sol":{"ast":{"absolutePath":"contracts/periphery/libraries/FixedPoint.sol","exportedSymbols":{"Babylonian":[1412],"BitMath":[1690],"FixedPoint":[2319],"FullMath":[2540]},"id":2320,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1692,"literals":["solidity",">=","0.4",".0"],"nodeType":"PragmaDirective","src":"45:24:15"},{"absolutePath":"contracts/periphery/libraries/FullMath.sol","file":"./FullMath.sol","id":1693,"nodeType":"ImportDirective","scope":2320,"sourceUnit":2541,"src":"71:24:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/periphery/libraries/Babylonian.sol","file":"../../periphery/libraries/Babylonian.sol","id":1694,"nodeType":"ImportDirective","scope":2320,"sourceUnit":1413,"src":"96:50:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/periphery/libraries/BitMath.sol","file":"./BitMath.sol","id":1695,"nodeType":"ImportDirective","scope":2320,"sourceUnit":1691,"src":"147:23:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2319,"linearizedBaseContracts":[2319],"name":"FixedPoint","nodeType":"ContractDefinition","nodes":[{"canonicalName":"FixedPoint.uq112x112","id":1698,"members":[{"constant":false,"id":1697,"mutability":"mutable","name":"_x","nodeType":"VariableDeclaration","scope":1698,"src":"387:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":1696,"name":"uint224","nodeType":"ElementaryTypeName","src":"387:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"name":"uq112x112","nodeType":"StructDefinition","scope":2319,"src":"360:44:15","visibility":"public"},{"canonicalName":"FixedPoint.uq144x112","id":1701,"members":[{"constant":false,"id":1700,"mutability":"mutable","name":"_x","nodeType":"VariableDeclaration","scope":1701,"src":"497:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1699,"name":"uint256","nodeType":"ElementaryTypeName","src":"497:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"uq144x112","nodeType":"StructDefinition","scope":2319,"src":"470:44:15","visibility":"public"},{"constant":true,"functionSelector":"552f888a","id":1704,"mutability":"constant","name":"RESOLUTION","nodeType":"VariableDeclaration","scope":2319,"src":"520:38:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1702,"name":"uint8","nodeType":"ElementaryTypeName","src":"520:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"313132","id":1703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"555:3:15","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},"visibility":"public"},{"constant":true,"functionSelector":"3bf7a83e","id":1707,"mutability":"constant","name":"Q112","nodeType":"VariableDeclaration","scope":2319,"src":"564:62:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1705,"name":"uint256","nodeType":"ElementaryTypeName","src":"564:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783130303030303030303030303030303030303030303030303030303030","id":1706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"595:31:15","typeDescriptions":{"typeIdentifier":"t_rational_5192296858534827628530496329220096_by_1","typeString":"int_const 5192...(26 digits omitted)...0096"},"value":"0x10000000000000000000000000000"},"visibility":"public"},{"constant":true,"id":1710,"mutability":"constant","name":"Q224","nodeType":"VariableDeclaration","scope":2319,"src":"642:91:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1708,"name":"uint256","nodeType":"ElementaryTypeName","src":"642:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030","id":1709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"674:59:15","typeDescriptions":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249216_by_1","typeString":"int_const 2695...(60 digits omitted)...9216"},"value":"0x100000000000000000000000000000000000000000000000000000000"},"visibility":"private"},{"constant":true,"id":1713,"mutability":"constant","name":"LOWER_MASK","nodeType":"VariableDeclaration","scope":2319,"src":"749:68:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1711,"name":"uint256","nodeType":"ElementaryTypeName","src":"749:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307866666666666666666666666666666666666666666666666666666666","id":1712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"787:30:15","typeDescriptions":{"typeIdentifier":"t_rational_5192296858534827628530496329220095_by_1","typeString":"int_const 5192...(26 digits omitted)...0095"},"value":"0xffffffffffffffffffffffffffff"},"visibility":"private"},{"body":{"id":1729,"nodeType":"Block","src":"970:59:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1723,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1715,"src":"1005:1:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":1722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"997:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":1721,"name":"uint224","nodeType":"ElementaryTypeName","src":"997:7:15","typeDescriptions":{}}},"id":1724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"997:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":1725,"name":"RESOLUTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"1011:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"997:24:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":1720,"name":"uq112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"987:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":1727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"987:35:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":1719,"id":1728,"nodeType":"Return","src":"980:42:15"}]},"id":1730,"implemented":true,"kind":"function","modifiers":[],"name":"encode","nodeType":"FunctionDefinition","parameters":{"id":1716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1715,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","scope":1730,"src":"918:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":1714,"name":"uint112","nodeType":"ElementaryTypeName","src":"918:7:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"917:11:15"},"returnParameters":{"id":1719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1718,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1730,"src":"952:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":1717,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"952:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"}],"src":"951:18:15"},"scope":2319,"src":"902:127:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1746,"nodeType":"Block","src":"1146:59:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1740,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1732,"src":"1181:1:15","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint144","typeString":"uint144"}],"id":1739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1173:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1738,"name":"uint256","nodeType":"ElementaryTypeName","src":"1173:7:15","typeDescriptions":{}}},"id":1741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1173:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":1742,"name":"RESOLUTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"1187:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1173:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1737,"name":"uq144x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"1163:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq144x112_$1701_storage_ptr_$","typeString":"type(struct FixedPoint.uq144x112 storage pointer)"}},"id":1744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1163:35:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq144x112_$1701_memory_ptr","typeString":"struct FixedPoint.uq144x112 memory"}},"functionReturnParameters":1736,"id":1745,"nodeType":"Return","src":"1156:42:15"}]},"id":1747,"implemented":true,"kind":"function","modifiers":[],"name":"encode144","nodeType":"FunctionDefinition","parameters":{"id":1733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1732,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","scope":1747,"src":"1094:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":1731,"name":"uint144","nodeType":"ElementaryTypeName","src":"1094:7:15","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"1093:11:15"},"returnParameters":{"id":1736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1735,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1747,"src":"1128:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq144x112_$1701_memory_ptr","typeString":"struct FixedPoint.uq144x112"},"typeName":{"id":1734,"name":"uq144x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1701,"src":"1128:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq144x112_$1701_storage_ptr","typeString":"struct FixedPoint.uq144x112"}},"visibility":"internal"}],"src":"1127:18:15"},"scope":2319,"src":"1075:130:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1762,"nodeType":"Block","src":"1359:54:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1756,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"1384:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"1384:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":1758,"name":"RESOLUTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"1395:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1384:21:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":1755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1376:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":1754,"name":"uint112","nodeType":"ElementaryTypeName","src":"1376:7:15","typeDescriptions":{}}},"id":1760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1376:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":1753,"id":1761,"nodeType":"Return","src":"1369:37:15"}]},"id":1763,"implemented":true,"kind":"function","modifiers":[],"name":"decode","nodeType":"FunctionDefinition","parameters":{"id":1750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1749,"mutability":"mutable","name":"self","nodeType":"VariableDeclaration","scope":1763,"src":"1304:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":1748,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"1304:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"}],"src":"1303:23:15"},"returnParameters":{"id":1753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1752,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1763,"src":"1350:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":1751,"name":"uint112","nodeType":"ElementaryTypeName","src":"1350:7:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"1349:9:15"},"scope":2319,"src":"1288:125:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1778,"nodeType":"Block","src":"1570:54:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1772,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1765,"src":"1595:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq144x112_$1701_memory_ptr","typeString":"struct FixedPoint.uq144x112 memory"}},"id":1773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1700,"src":"1595:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":1774,"name":"RESOLUTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"1606:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1595:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1587:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":1770,"name":"uint144","nodeType":"ElementaryTypeName","src":"1587:7:15","typeDescriptions":{}}},"id":1776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1587:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":1769,"id":1777,"nodeType":"Return","src":"1580:37:15"}]},"id":1779,"implemented":true,"kind":"function","modifiers":[],"name":"decode144","nodeType":"FunctionDefinition","parameters":{"id":1766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1765,"mutability":"mutable","name":"self","nodeType":"VariableDeclaration","scope":1779,"src":"1515:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq144x112_$1701_memory_ptr","typeString":"struct FixedPoint.uq144x112"},"typeName":{"id":1764,"name":"uq144x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1701,"src":"1515:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq144x112_$1701_storage_ptr","typeString":"struct FixedPoint.uq144x112"}},"visibility":"internal"}],"src":"1514:23:15"},"returnParameters":{"id":1769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1768,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1779,"src":"1561:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":1767,"name":"uint144","nodeType":"ElementaryTypeName","src":"1561:7:15","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"1560:9:15"},"scope":2319,"src":"1496:128:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1816,"nodeType":"Block","src":"1806:149:15","statements":[{"assignments":[1789],"declarations":[{"constant":false,"id":1789,"mutability":"mutable","name":"z","nodeType":"VariableDeclaration","scope":1816,"src":"1816:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1788,"name":"uint256","nodeType":"ElementaryTypeName","src":"1816:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1791,"initialValue":{"hexValue":"30","id":1790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1828:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1816:13:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1793,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"1847:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1847:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"id":1801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1796,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1789,"src":"1858:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1797,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1781,"src":"1862:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"1862:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1799,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"1872:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1862:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1858:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1802,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1857:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1803,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"1877:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1857:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1805,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1781,"src":"1882:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"1882:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"1857:32:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1847:42:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a6d756c3a206f766572666c6f77","id":1809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1891:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4948de739aba85946a14984f472451f25a4920e9fae93fb8ed011d3024f8abcf","typeString":"literal_string \"FixedPoint::mul: overflow\""},"value":"FixedPoint::mul: overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4948de739aba85946a14984f472451f25a4920e9fae93fb8ed011d3024f8abcf","typeString":"literal_string \"FixedPoint::mul: overflow\""}],"id":1792,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1839:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1839:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1811,"nodeType":"ExpressionStatement","src":"1839:80:15"},{"expression":{"arguments":[{"id":1813,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1789,"src":"1946:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1812,"name":"uq144x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"1936:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq144x112_$1701_storage_ptr_$","typeString":"type(struct FixedPoint.uq144x112 storage pointer)"}},"id":1814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1936:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq144x112_$1701_memory_ptr","typeString":"struct FixedPoint.uq144x112 memory"}},"functionReturnParameters":1787,"id":1815,"nodeType":"Return","src":"1929:19:15"}]},"id":1817,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nodeType":"FunctionDefinition","parameters":{"id":1784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1781,"mutability":"mutable","name":"self","nodeType":"VariableDeclaration","scope":1817,"src":"1731:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":1780,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"1731:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"},{"constant":false,"id":1783,"mutability":"mutable","name":"y","nodeType":"VariableDeclaration","scope":1817,"src":"1754:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1782,"name":"uint256","nodeType":"ElementaryTypeName","src":"1754:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1730:34:15"},"returnParameters":{"id":1787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1786,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1817,"src":"1788:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq144x112_$1701_memory_ptr","typeString":"struct FixedPoint.uq144x112"},"typeName":{"id":1785,"name":"uq144x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1701,"src":"1788:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq144x112_$1701_storage_ptr","typeString":"struct FixedPoint.uq144x112"}},"visibility":"internal"}],"src":"1787:18:15"},"scope":2319,"src":"1718:237:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1868,"nodeType":"Block","src":"2133:190:15","statements":[{"assignments":[1827],"declarations":[{"constant":false,"id":1827,"mutability":"mutable","name":"z","nodeType":"VariableDeclaration","scope":1868,"src":"2143:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1826,"name":"uint256","nodeType":"ElementaryTypeName","src":"2143:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1844,"initialValue":{"arguments":[{"expression":{"id":1830,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1819,"src":"2171:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"2171:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1834,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1821,"src":"2188:1:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2192:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2188:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1839,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1821,"src":"2201:1:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2188:14:15","trueExpression":{"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2196:2:15","subExpression":{"id":1837,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1821,"src":"2197:1:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2180:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1832,"name":"uint256","nodeType":"ElementaryTypeName","src":"2180:7:15","typeDescriptions":{}}},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2180:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1842,"name":"Q112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"2205:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1828,"name":"FullMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2540,"src":"2155:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FullMath_$2540_$","typeString":"type(library FullMath)"}},"id":1829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDiv","nodeType":"MemberAccess","referencedDeclaration":2539,"src":"2155:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":1843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2155:55:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2143:67:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1846,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"2228:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"id":1849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2232:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"323535","id":1848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2235:3:15","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"2232:6:15","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"}},"src":"2228:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a6d756c693a206f766572666c6f77","id":1851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2240:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a352085f3dae8adf2989a66ed19b1d5cfc2957ebdd82dbbc3ae8101610d3fd00","typeString":"literal_string \"FixedPoint::muli: overflow\""},"value":"FixedPoint::muli: overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a352085f3dae8adf2989a66ed19b1d5cfc2957ebdd82dbbc3ae8101610d3fd00","typeString":"literal_string \"FixedPoint::muli: overflow\""}],"id":1845,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2220:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2220:49:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1853,"nodeType":"ExpressionStatement","src":"2220:49:15"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1854,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1821,"src":"2286:1:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2290:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2286:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":1864,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"2314:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2307:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":1862,"name":"int256","nodeType":"ElementaryTypeName","src":"2307:6:15","typeDescriptions":{}}},"id":1865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2307:9:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2286:30:15","trueExpression":{"id":1861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2294:10:15","subExpression":{"arguments":[{"id":1859,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"2302:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2295:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":1857,"name":"int256","nodeType":"ElementaryTypeName","src":"2295:6:15","typeDescriptions":{}}},"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2295:9:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":1825,"id":1867,"nodeType":"Return","src":"2279:37:15"}]},"id":1869,"implemented":true,"kind":"function","modifiers":[],"name":"muli","nodeType":"FunctionDefinition","parameters":{"id":1822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1819,"mutability":"mutable","name":"self","nodeType":"VariableDeclaration","scope":1869,"src":"2069:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":1818,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"2069:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"},{"constant":false,"id":1821,"mutability":"mutable","name":"y","nodeType":"VariableDeclaration","scope":1869,"src":"2092:8:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1820,"name":"int256","nodeType":"ElementaryTypeName","src":"2092:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2068:33:15"},"returnParameters":{"id":1825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1824,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1869,"src":"2125:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1823,"name":"int256","nodeType":"ElementaryTypeName","src":"2125:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2124:8:15"},"scope":2319,"src":"2055:268:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2016,"nodeType":"Block","src":"2511:1160:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1878,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1871,"src":"2525:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"2525:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2536:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2525:12:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1882,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1873,"src":"2541:5:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"2541:8:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2553:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2541:13:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2525:29:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1892,"nodeType":"IfStatement","src":"2521:79:15","trueBody":{"id":1891,"nodeType":"Block","src":"2556:44:15","statements":[{"expression":{"arguments":[{"hexValue":"30","id":1888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2587:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1887,"name":"uq112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"2577:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":1889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2577:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":1877,"id":1890,"nodeType":"Return","src":"2570:19:15"}]}},{"assignments":[1894],"declarations":[{"constant":false,"id":1894,"mutability":"mutable","name":"upper_self","nodeType":"VariableDeclaration","scope":2016,"src":"2609:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":1893,"name":"uint112","nodeType":"ElementaryTypeName","src":"2609:7:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"id":1902,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1897,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1871,"src":"2638:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"2638:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":1899,"name":"RESOLUTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"2649:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2638:21:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":1896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2630:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":1895,"name":"uint112","nodeType":"ElementaryTypeName","src":"2630:7:15","typeDescriptions":{}}},"id":1901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2630:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"VariableDeclarationStatement","src":"2609:51:15"},{"assignments":[1904],"declarations":[{"constant":false,"id":1904,"mutability":"mutable","name":"lower_self","nodeType":"VariableDeclaration","scope":2016,"src":"2679:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":1903,"name":"uint112","nodeType":"ElementaryTypeName","src":"2679:7:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"id":1912,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1907,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1871,"src":"2708:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"2708:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":1909,"name":"LOWER_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"2718:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2708:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2700:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":1905,"name":"uint112","nodeType":"ElementaryTypeName","src":"2700:7:15","typeDescriptions":{}}},"id":1911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2700:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"VariableDeclarationStatement","src":"2679:50:15"},{"assignments":[1914],"declarations":[{"constant":false,"id":1914,"mutability":"mutable","name":"upper_other","nodeType":"VariableDeclaration","scope":2016,"src":"2751:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":1913,"name":"uint112","nodeType":"ElementaryTypeName","src":"2751:7:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"id":1922,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1917,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1873,"src":"2781:5:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"2781:8:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":1919,"name":"RESOLUTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"2793:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2781:22:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":1916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2773:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":1915,"name":"uint112","nodeType":"ElementaryTypeName","src":"2773:7:15","typeDescriptions":{}}},"id":1921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2773:31:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"VariableDeclarationStatement","src":"2751:53:15"},{"assignments":[1924],"declarations":[{"constant":false,"id":1924,"mutability":"mutable","name":"lower_other","nodeType":"VariableDeclaration","scope":2016,"src":"2823:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":1923,"name":"uint112","nodeType":"ElementaryTypeName","src":"2823:7:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"id":1932,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1927,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1873,"src":"2853:5:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":1928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"2853:8:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":1929,"name":"LOWER_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"2864:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2853:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2845:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":1925,"name":"uint112","nodeType":"ElementaryTypeName","src":"2845:7:15","typeDescriptions":{}}},"id":1931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2845:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"VariableDeclarationStatement","src":"2823:52:15"},{"assignments":[1934],"declarations":[{"constant":false,"id":1934,"mutability":"mutable","name":"upper","nodeType":"VariableDeclaration","scope":2016,"src":"2926:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":1933,"name":"uint224","nodeType":"ElementaryTypeName","src":"2926:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"id":1941,"initialValue":{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1937,"name":"upper_self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1894,"src":"2950:10:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":1936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2942:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":1935,"name":"uint224","nodeType":"ElementaryTypeName","src":"2942:7:15","typeDescriptions":{}}},"id":1938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2942:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1939,"name":"upper_other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1914,"src":"2964:11:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"2942:33:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"VariableDeclarationStatement","src":"2926:49:15"},{"assignments":[1943],"declarations":[{"constant":false,"id":1943,"mutability":"mutable","name":"lower","nodeType":"VariableDeclaration","scope":2016,"src":"2994:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":1942,"name":"uint224","nodeType":"ElementaryTypeName","src":"2994:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"id":1950,"initialValue":{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1946,"name":"lower_self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1904,"src":"3018:10:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":1945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3010:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":1944,"name":"uint224","nodeType":"ElementaryTypeName","src":"3010:7:15","typeDescriptions":{}}},"id":1947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3010:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1948,"name":"lower_other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"3032:11:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"3010:33:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"VariableDeclarationStatement","src":"2994:49:15"},{"assignments":[1952],"declarations":[{"constant":false,"id":1952,"mutability":"mutable","name":"uppers_lowero","nodeType":"VariableDeclaration","scope":2016,"src":"3065:21:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":1951,"name":"uint224","nodeType":"ElementaryTypeName","src":"3065:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"id":1959,"initialValue":{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1955,"name":"upper_self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1894,"src":"3097:10:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":1954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3089:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":1953,"name":"uint224","nodeType":"ElementaryTypeName","src":"3089:7:15","typeDescriptions":{}}},"id":1956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3089:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1957,"name":"lower_other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"3111:11:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"3089:33:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"VariableDeclarationStatement","src":"3065:57:15"},{"assignments":[1961],"declarations":[{"constant":false,"id":1961,"mutability":"mutable","name":"uppero_lowers","nodeType":"VariableDeclaration","scope":2016,"src":"3144:21:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":1960,"name":"uint224","nodeType":"ElementaryTypeName","src":"3144:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"id":1968,"initialValue":{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1964,"name":"upper_other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1914,"src":"3176:11:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":1963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3168:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":1962,"name":"uint224","nodeType":"ElementaryTypeName","src":"3168:7:15","typeDescriptions":{}}},"id":1965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3168:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1966,"name":"lower_self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1904,"src":"3191:10:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"3168:33:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"VariableDeclarationStatement","src":"3144:57:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1970,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1934,"src":"3278:5:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":1974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"3295:2:15","subExpression":{"hexValue":"31","id":1973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3296:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":1972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3287:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":1971,"name":"uint112","nodeType":"ElementaryTypeName","src":"3287:7:15","typeDescriptions":{}}},"id":1975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3287:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"3278:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a6d756c75713a207570706572206f766572666c6f77","id":1977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3300:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b52493e04417af33ef99b1a68ac11af8712869fc1c194d72e6b0646c5968b5de","typeString":"literal_string \"FixedPoint::muluq: upper overflow\""},"value":"FixedPoint::muluq: upper overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b52493e04417af33ef99b1a68ac11af8712869fc1c194d72e6b0646c5968b5de","typeString":"literal_string \"FixedPoint::muluq: upper overflow\""}],"id":1969,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3270:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3270:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1979,"nodeType":"ExpressionStatement","src":"3270:66:15"},{"assignments":[1981],"declarations":[{"constant":false,"id":1981,"mutability":"mutable","name":"sum","nodeType":"VariableDeclaration","scope":2016,"src":"3411:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1980,"name":"uint256","nodeType":"ElementaryTypeName","src":"3411:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1997,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1984,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1934,"src":"3433:5:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":1985,"name":"RESOLUTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"3442:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3433:19:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":1983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3425:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1982,"name":"uint256","nodeType":"ElementaryTypeName","src":"3425:7:15","typeDescriptions":{}}},"id":1987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3425:28:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1988,"name":"uppers_lowero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1952,"src":"3456:13:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3425:44:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1990,"name":"uppero_lowers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"3472:13:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3425:60:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":1994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1992,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"3489:5:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":1993,"name":"RESOLUTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"3498:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3489:19:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"id":1995,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3488:21:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3425:84:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3411:98:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1999,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"3569:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":2003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"3584:2:15","subExpression":{"hexValue":"31","id":2002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3585:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":2001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3576:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2000,"name":"uint224","nodeType":"ElementaryTypeName","src":"3576:7:15","typeDescriptions":{}}},"id":2004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3576:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3569:18:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a6d756c75713a2073756d206f766572666c6f77","id":2006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3589:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a26cd9bd987e78cd1c5f6e66afec1e08b996885c9b9c44f1a5fd3a63466b2eff","typeString":"literal_string \"FixedPoint::muluq: sum overflow\""},"value":"FixedPoint::muluq: sum overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a26cd9bd987e78cd1c5f6e66afec1e08b996885c9b9c44f1a5fd3a63466b2eff","typeString":"literal_string \"FixedPoint::muluq: sum overflow\""}],"id":1998,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3561:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3561:62:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2008,"nodeType":"ExpressionStatement","src":"3561:62:15"},{"expression":{"arguments":[{"arguments":[{"id":2012,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"3659:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3651:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2010,"name":"uint224","nodeType":"ElementaryTypeName","src":"3651:7:15","typeDescriptions":{}}},"id":2013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3651:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2009,"name":"uq112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"3641:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":2014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3641:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":1877,"id":2015,"nodeType":"Return","src":"3634:30:15"}]},"id":2017,"implemented":true,"kind":"function","modifiers":[],"name":"muluq","nodeType":"FunctionDefinition","parameters":{"id":1874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1871,"mutability":"mutable","name":"self","nodeType":"VariableDeclaration","scope":2017,"src":"2423:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":1870,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"2423:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"},{"constant":false,"id":1873,"mutability":"mutable","name":"other","nodeType":"VariableDeclaration","scope":2017,"src":"2446:22:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":1872,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"2446:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"}],"src":"2422:47:15"},"returnParameters":{"id":1877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1876,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2017,"src":"2493:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":1875,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"2493:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"}],"src":"2492:18:15"},"scope":2319,"src":"2408:1263:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2119,"nodeType":"Block","src":"3844:590:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":2030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2027,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"3862:5:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"3862:8:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3873:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3862:12:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a64697675713a206469766973696f6e206279207a65726f","id":2031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3876:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_422bc21f2eb91510a9cc7c0ead94b70d98345c9617c11cff466b9a69e8fa701d","typeString":"literal_string \"FixedPoint::divuq: division by zero\""},"value":"FixedPoint::divuq: division by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_422bc21f2eb91510a9cc7c0ead94b70d98345c9617c11cff466b9a69e8fa701d","typeString":"literal_string \"FixedPoint::divuq: division by zero\""}],"id":2026,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3854:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3854:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2033,"nodeType":"ExpressionStatement","src":"3854:60:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":2038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2034,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2019,"src":"3928:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"3928:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2036,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"3939:5:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"3939:8:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3928:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2047,"nodeType":"IfStatement","src":"3924:81:15","trueBody":{"id":2046,"nodeType":"Block","src":"3949:56:15","statements":[{"expression":{"arguments":[{"arguments":[{"id":2042,"name":"Q112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"3988:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3980:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2040,"name":"uint224","nodeType":"ElementaryTypeName","src":"3980:7:15","typeDescriptions":{}}},"id":2043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3980:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2039,"name":"uq112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"3970:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":2044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3970:24:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":2025,"id":2045,"nodeType":"Return","src":"3963:31:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":2055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2048,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2019,"src":"4018:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"4018:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":2053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"4037:2:15","subExpression":{"hexValue":"31","id":2052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4038:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":2051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4029:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":2050,"name":"uint144","nodeType":"ElementaryTypeName","src":"4029:7:15","typeDescriptions":{}}},"id":2054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4029:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"4018:22:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2089,"nodeType":"IfStatement","src":"4014:232:15","trueBody":{"id":2088,"nodeType":"Block","src":"4042:204:15","statements":[{"assignments":[2057],"declarations":[{"constant":false,"id":2057,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":2088,"src":"4056:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2056,"name":"uint256","nodeType":"ElementaryTypeName","src":"4056:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2069,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":2060,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2019,"src":"4081:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"4081:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4073:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2058,"name":"uint256","nodeType":"ElementaryTypeName","src":"4073:7:15","typeDescriptions":{}}},"id":2062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4073:16:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":2063,"name":"RESOLUTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"4093:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4073:30:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2065,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4072:32:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":2066,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"4107:5:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"4107:8:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"4072:43:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4056:59:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2071,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"4137:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":2075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"4154:2:15","subExpression":{"hexValue":"31","id":2074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4155:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":2073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4146:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2072,"name":"uint224","nodeType":"ElementaryTypeName","src":"4146:7:15","typeDescriptions":{}}},"id":2076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4146:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"4137:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a64697675713a206f766572666c6f77","id":2078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4159:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f2635ef6119740811945e2425893e62b117b25251f7d0aaa9a8ce883079e0ad","typeString":"literal_string \"FixedPoint::divuq: overflow\""},"value":"FixedPoint::divuq: overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3f2635ef6119740811945e2425893e62b117b25251f7d0aaa9a8ce883079e0ad","typeString":"literal_string \"FixedPoint::divuq: overflow\""}],"id":2070,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4129:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4129:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2080,"nodeType":"ExpressionStatement","src":"4129:60:15"},{"expression":{"arguments":[{"arguments":[{"id":2084,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"4228:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4220:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2082,"name":"uint224","nodeType":"ElementaryTypeName","src":"4220:7:15","typeDescriptions":{}}},"id":2085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4220:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2081,"name":"uq112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"4210:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":2086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4210:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":2025,"id":2087,"nodeType":"Return","src":"4203:32:15"}]}},{"assignments":[2091],"declarations":[{"constant":false,"id":2091,"mutability":"mutable","name":"result","nodeType":"VariableDeclaration","scope":2119,"src":"4256:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2090,"name":"uint256","nodeType":"ElementaryTypeName","src":"4256:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2100,"initialValue":{"arguments":[{"id":2094,"name":"Q112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"4289:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2095,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2019,"src":"4295:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"4295:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},{"expression":{"id":2097,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"4304:5:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"4304:8:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint224","typeString":"uint224"},{"typeIdentifier":"t_uint224","typeString":"uint224"}],"expression":{"id":2092,"name":"FullMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2540,"src":"4273:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FullMath_$2540_$","typeString":"type(library FullMath)"}},"id":2093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDiv","nodeType":"MemberAccess","referencedDeclaration":2539,"src":"4273:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4273:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4256:57:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2102,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2091,"src":"4331:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":2106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"4349:2:15","subExpression":{"hexValue":"31","id":2105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4350:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":2104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4341:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2103,"name":"uint224","nodeType":"ElementaryTypeName","src":"4341:7:15","typeDescriptions":{}}},"id":2107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4341:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"4331:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a64697675713a206f766572666c6f77","id":2109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4354:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f2635ef6119740811945e2425893e62b117b25251f7d0aaa9a8ce883079e0ad","typeString":"literal_string \"FixedPoint::divuq: overflow\""},"value":"FixedPoint::divuq: overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3f2635ef6119740811945e2425893e62b117b25251f7d0aaa9a8ce883079e0ad","typeString":"literal_string \"FixedPoint::divuq: overflow\""}],"id":2101,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4323:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4323:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2111,"nodeType":"ExpressionStatement","src":"4323:61:15"},{"expression":{"arguments":[{"arguments":[{"id":2115,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2091,"src":"4419:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4411:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2113,"name":"uint224","nodeType":"ElementaryTypeName","src":"4411:7:15","typeDescriptions":{}}},"id":2116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4411:15:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2112,"name":"uq112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"4401:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4401:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":2025,"id":2118,"nodeType":"Return","src":"4394:33:15"}]},"id":2120,"implemented":true,"kind":"function","modifiers":[],"name":"divuq","nodeType":"FunctionDefinition","parameters":{"id":2022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2019,"mutability":"mutable","name":"self","nodeType":"VariableDeclaration","scope":2120,"src":"3756:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":2018,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"3756:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"},{"constant":false,"id":2021,"mutability":"mutable","name":"other","nodeType":"VariableDeclaration","scope":2120,"src":"3779:22:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":2020,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"3779:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"}],"src":"3755:47:15"},"returnParameters":{"id":2025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2024,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2120,"src":"3826:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":2023,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"3826:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"}],"src":"3825:18:15"},"scope":2319,"src":"3741:693:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2209,"nodeType":"Block","src":"4649:607:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2130,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2124,"src":"4667:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4681:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4667:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a6672616374696f6e3a206469766973696f6e206279207a65726f","id":2133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4684:40:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e8a6c8dfacd0a41f2501735d8ee26d996b9e7e81ff5467dfdfd11a3728a15e7","typeString":"literal_string \"FixedPoint::fraction: division by zero\""},"value":"FixedPoint::fraction: division by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e8a6c8dfacd0a41f2501735d8ee26d996b9e7e81ff5467dfdfd11a3728a15e7","typeString":"literal_string \"FixedPoint::fraction: division by zero\""}],"id":2129,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4659:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4659:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2135,"nodeType":"ExpressionStatement","src":"4659:66:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2136,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2122,"src":"4739:9:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4752:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4739:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2144,"nodeType":"IfStatement","src":"4735:50:15","trueBody":{"expression":{"arguments":[{"hexValue":"30","id":2141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4783:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":2139,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2319,"src":"4762:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$2319_$","typeString":"type(library FixedPoint)"}},"id":2140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"uq112x112","nodeType":"MemberAccess","referencedDeclaration":1698,"src":"4762:20:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":2142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4762:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":2128,"id":2143,"nodeType":"Return","src":"4755:30:15"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2145,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2122,"src":"4800:9:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":2149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"4821:2:15","subExpression":{"hexValue":"31","id":2148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4822:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":2147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4813:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":2146,"name":"uint144","nodeType":"ElementaryTypeName","src":"4813:7:15","typeDescriptions":{}}},"id":2150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4813:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"4800:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2207,"nodeType":"Block","src":"5038:212:15","statements":[{"assignments":[2181],"declarations":[{"constant":false,"id":2181,"mutability":"mutable","name":"result","nodeType":"VariableDeclaration","scope":2207,"src":"5052:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2180,"name":"uint256","nodeType":"ElementaryTypeName","src":"5052:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2188,"initialValue":{"arguments":[{"id":2184,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2122,"src":"5085:9:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2185,"name":"Q112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"5096:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2186,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2124,"src":"5102:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2182,"name":"FullMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2540,"src":"5069:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FullMath_$2540_$","typeString":"type(library FullMath)"}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDiv","nodeType":"MemberAccess","referencedDeclaration":2539,"src":"5069:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5069:45:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5052:62:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2190,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2181,"src":"5136:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":2194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"5154:2:15","subExpression":{"hexValue":"31","id":2193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5155:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":2192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5146:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2191,"name":"uint224","nodeType":"ElementaryTypeName","src":"5146:7:15","typeDescriptions":{}}},"id":2195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5146:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"5136:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f77","id":2197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5159:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fe8d10e95984e9ccfd1797a961d8375075b4df29dfe16192bd5e7445ed87d53","typeString":"literal_string \"FixedPoint::fraction: overflow\""},"value":"FixedPoint::fraction: overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9fe8d10e95984e9ccfd1797a961d8375075b4df29dfe16192bd5e7445ed87d53","typeString":"literal_string \"FixedPoint::fraction: overflow\""}],"id":2189,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5128:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5128:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2199,"nodeType":"ExpressionStatement","src":"5128:64:15"},{"expression":{"arguments":[{"arguments":[{"id":2203,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2181,"src":"5231:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5223:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2201,"name":"uint224","nodeType":"ElementaryTypeName","src":"5223:7:15","typeDescriptions":{}}},"id":2204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5223:15:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2200,"name":"uq112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"5213:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":2205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5213:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":2128,"id":2206,"nodeType":"Return","src":"5206:33:15"}]},"id":2208,"nodeType":"IfStatement","src":"4796:454:15","trueBody":{"id":2179,"nodeType":"Block","src":"4826:206:15","statements":[{"assignments":[2153],"declarations":[{"constant":false,"id":2153,"mutability":"mutable","name":"result","nodeType":"VariableDeclaration","scope":2179,"src":"4840:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2152,"name":"uint256","nodeType":"ElementaryTypeName","src":"4840:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2160,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2154,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2122,"src":"4858:9:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":2155,"name":"RESOLUTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"4871:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4858:23:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2157,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4857:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2158,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2124,"src":"4885:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4857:39:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4840:56:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2162,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2153,"src":"4918:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":2166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"4936:2:15","subExpression":{"hexValue":"31","id":2165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4937:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":2164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4928:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2163,"name":"uint224","nodeType":"ElementaryTypeName","src":"4928:7:15","typeDescriptions":{}}},"id":2167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4928:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"4918:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f77","id":2169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4941:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fe8d10e95984e9ccfd1797a961d8375075b4df29dfe16192bd5e7445ed87d53","typeString":"literal_string \"FixedPoint::fraction: overflow\""},"value":"FixedPoint::fraction: overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9fe8d10e95984e9ccfd1797a961d8375075b4df29dfe16192bd5e7445ed87d53","typeString":"literal_string \"FixedPoint::fraction: overflow\""}],"id":2161,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4910:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4910:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2171,"nodeType":"ExpressionStatement","src":"4910:64:15"},{"expression":{"arguments":[{"arguments":[{"id":2175,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2153,"src":"5013:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5005:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2173,"name":"uint224","nodeType":"ElementaryTypeName","src":"5005:7:15","typeDescriptions":{}}},"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5005:15:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2172,"name":"uq112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"4995:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":2177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4995:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":2128,"id":2178,"nodeType":"Return","src":"4988:33:15"}]}}]},"id":2210,"implemented":true,"kind":"function","modifiers":[],"name":"fraction","nodeType":"FunctionDefinition","parameters":{"id":2125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2122,"mutability":"mutable","name":"numerator","nodeType":"VariableDeclaration","scope":2210,"src":"4568:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2121,"name":"uint256","nodeType":"ElementaryTypeName","src":"4568:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2124,"mutability":"mutable","name":"denominator","nodeType":"VariableDeclaration","scope":2210,"src":"4587:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2123,"name":"uint256","nodeType":"ElementaryTypeName","src":"4587:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4567:40:15"},"returnParameters":{"id":2128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2127,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2210,"src":"4631:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":2126,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"4631:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"}],"src":"4630:18:15"},"scope":2319,"src":"4550:706:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2243,"nodeType":"Block","src":"5428:202:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":2221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2218,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2212,"src":"5446:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"5446:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5457:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5446:12:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a7265636970726f63616c3a207265636970726f63616c206f66207a65726f","id":2222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5460:44:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3029a5a93a398fe526ba88b78683cb8409b11161a7a6252d5ccb5c8f4f8aea1","typeString":"literal_string \"FixedPoint::reciprocal: reciprocal of zero\""},"value":"FixedPoint::reciprocal: reciprocal of zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3029a5a93a398fe526ba88b78683cb8409b11161a7a6252d5ccb5c8f4f8aea1","typeString":"literal_string \"FixedPoint::reciprocal: reciprocal of zero\""}],"id":2217,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5438:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5438:67:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2224,"nodeType":"ExpressionStatement","src":"5438:67:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":2229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2226,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2212,"src":"5523:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"5523:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":2228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5534:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5523:12:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4669786564506f696e743a3a7265636970726f63616c3a206f766572666c6f77","id":2230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5537:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0c2f767026b31296fb6fcaacdf9d3529986be99f9a71f7d756dd15015fdbac1","typeString":"literal_string \"FixedPoint::reciprocal: overflow\""},"value":"FixedPoint::reciprocal: overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d0c2f767026b31296fb6fcaacdf9d3529986be99f9a71f7d756dd15015fdbac1","typeString":"literal_string \"FixedPoint::reciprocal: overflow\""}],"id":2225,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5515:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5515:57:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2232,"nodeType":"ExpressionStatement","src":"5515:57:15"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2236,"name":"Q224","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1710,"src":"5607:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":2237,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2212,"src":"5614:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"5614:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"5607:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5599:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2234,"name":"uint224","nodeType":"ElementaryTypeName","src":"5599:7:15","typeDescriptions":{}}},"id":2240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5599:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2233,"name":"uq112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"5589:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":2241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5589:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":2216,"id":2242,"nodeType":"Return","src":"5582:41:15"}]},"id":2244,"implemented":true,"kind":"function","modifiers":[],"name":"reciprocal","nodeType":"FunctionDefinition","parameters":{"id":2213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2212,"mutability":"mutable","name":"self","nodeType":"VariableDeclaration","scope":2244,"src":"5364:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":2211,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"5364:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"}],"src":"5363:23:15"},"returnParameters":{"id":2216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2215,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2244,"src":"5410:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":2214,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"5410:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"}],"src":"5409:18:15"},"scope":2319,"src":"5344:286:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2317,"nodeType":"Block","src":"5785:372:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":2258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2251,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2246,"src":"5799:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"5799:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":2256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"5818:2:15","subExpression":{"hexValue":"31","id":2255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5819:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":2254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5810:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":2253,"name":"uint144","nodeType":"ElementaryTypeName","src":"5810:7:15","typeDescriptions":{}}},"id":2257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5810:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"5799:22:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2276,"nodeType":"IfStatement","src":"5795:120:15","trueBody":{"id":2275,"nodeType":"Block","src":"5823:92:15","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":2266,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2246,"src":"5886:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2267,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"5886:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5878:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2264,"name":"uint256","nodeType":"ElementaryTypeName","src":"5878:7:15","typeDescriptions":{}}},"id":2268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5878:16:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313132","id":2269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5898:3:15","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},"src":"5878:23:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2262,"name":"Babylonian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1412,"src":"5862:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Babylonian_$1412_$","typeString":"type(library Babylonian)"}},"id":2263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":1411,"src":"5862:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5862:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5854:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2260,"name":"uint224","nodeType":"ElementaryTypeName","src":"5854:7:15","typeDescriptions":{}}},"id":2272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5854:49:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2259,"name":"uq112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"5844:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":2273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5844:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":2250,"id":2274,"nodeType":"Return","src":"5837:67:15"}]}},{"assignments":[2278],"declarations":[{"constant":false,"id":2278,"mutability":"mutable","name":"safeShiftBits","nodeType":"VariableDeclaration","scope":2317,"src":"5925:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2277,"name":"uint8","nodeType":"ElementaryTypeName","src":"5925:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2286,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323535","id":2279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5947:3:15","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"expression":{"id":2282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2246,"src":"5980:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"5980:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"expression":{"id":2280,"name":"BitMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1690,"src":"5953:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BitMath_$1690_$","typeString":"type(library BitMath)"}},"id":2281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mostSignificantBit","nodeType":"MemberAccess","referencedDeclaration":1528,"src":"5953:26:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5953:35:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5947:41:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"5925:63:15"},{"expression":{"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2287,"name":"safeShiftBits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2278,"src":"5998:13:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2288,"name":"safeShiftBits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2278,"src":"6015:13:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":2289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6031:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6015:17:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5998:34:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2292,"nodeType":"ExpressionStatement","src":"5998:34:15"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":2300,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2246,"src":"6091:4:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"id":2301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_x","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"6091:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6083:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2298,"name":"uint256","nodeType":"ElementaryTypeName","src":"6083:7:15","typeDescriptions":{}}},"id":2302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6083:16:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":2303,"name":"safeShiftBits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2278,"src":"6103:13:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6083:33:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2296,"name":"Babylonian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1412,"src":"6067:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Babylonian_$1412_$","typeString":"type(library Babylonian)"}},"id":2297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":1411,"src":"6067:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6067:50:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313132","id":2306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6123:3:15","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2307,"name":"safeShiftBits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2278,"src":"6129:13:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6123:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2309,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6122:21:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":2310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6146:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6122:25:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6121:27:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6067:81:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6059:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":2294,"name":"uint224","nodeType":"ElementaryTypeName","src":"6059:7:15","typeDescriptions":{}}},"id":2314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6059:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2293,"name":"uq112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"6049:9:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_uq112x112_$1698_storage_ptr_$","typeString":"type(struct FixedPoint.uq112x112 storage pointer)"}},"id":2315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6049:101:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112 memory"}},"functionReturnParameters":2250,"id":2316,"nodeType":"Return","src":"6042:108:15"}]},"id":2318,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nodeType":"FunctionDefinition","parameters":{"id":2247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2246,"mutability":"mutable","name":"self","nodeType":"VariableDeclaration","scope":2318,"src":"5721:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":2245,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"5721:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"}],"src":"5720:23:15"},"returnParameters":{"id":2250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2249,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2318,"src":"5767:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_memory_ptr","typeString":"struct FixedPoint.uq112x112"},"typeName":{"id":2248,"name":"uq112x112","nodeType":"UserDefinedTypeName","referencedDeclaration":1698,"src":"5767:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_uq112x112_$1698_storage_ptr","typeString":"struct FixedPoint.uq112x112"}},"visibility":"internal"}],"src":"5766:18:15"},"scope":2319,"src":"5707:450:15","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2320,"src":"275:5884:15"}],"src":"45:6115:15"},"id":15},"contracts/periphery/libraries/FullMath.sol":{"ast":{"absolutePath":"contracts/periphery/libraries/FullMath.sol","exportedSymbols":{"FullMath":[2540]},"id":2541,"license":"CC-BY-4.0","nodeType":"SourceUnit","nodes":[{"id":2321,"literals":["solidity",">=","0.4",".0"],"nodeType":"PragmaDirective","src":"38:24:16"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2540,"linearizedBaseContracts":[2540],"name":"FullMath","nodeType":"ContractDefinition","nodes":[{"body":{"id":2364,"nodeType":"Block","src":"300:122:16","statements":[{"assignments":[2333],"declarations":[{"constant":false,"id":2333,"mutability":"mutable","name":"mm","nodeType":"VariableDeclaration","scope":2364,"src":"310:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2332,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2343,"initialValue":{"arguments":[{"id":2335,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2323,"src":"330:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2336,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2325,"src":"333:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":2340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"344:2:16","subExpression":{"hexValue":"31","id":2339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"345:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":2338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"336:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2337,"name":"uint256","nodeType":"ElementaryTypeName","src":"336:7:16","typeDescriptions":{}}},"id":2341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"336:11:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2334,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"323:6:16","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"323:25:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"310:38:16"},{"expression":{"id":2348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2344,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2328,"src":"358:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2345,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2323,"src":"362:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2346,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2325,"src":"366:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"362:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"358:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2349,"nodeType":"ExpressionStatement","src":"358:9:16"},{"expression":{"id":2354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2350,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2330,"src":"377:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2351,"name":"mm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2333,"src":"381:2:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2352,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2328,"src":"386:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"381:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"377:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2355,"nodeType":"ExpressionStatement","src":"377:10:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2356,"name":"mm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2333,"src":"401:2:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2357,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2328,"src":"406:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"401:6:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2363,"nodeType":"IfStatement","src":"397:18:16","trueBody":{"expression":{"id":2361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2359,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2330,"src":"409:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":2360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"414:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"409:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2362,"nodeType":"ExpressionStatement","src":"409:6:16"}}]},"id":2365,"implemented":true,"kind":"function","modifiers":[],"name":"fullMul","nodeType":"FunctionDefinition","parameters":{"id":2326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2323,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","scope":2365,"src":"233:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2322,"name":"uint256","nodeType":"ElementaryTypeName","src":"233:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2325,"mutability":"mutable","name":"y","nodeType":"VariableDeclaration","scope":2365,"src":"244:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2324,"name":"uint256","nodeType":"ElementaryTypeName","src":"244:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"232:22:16"},"returnParameters":{"id":2331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2328,"mutability":"mutable","name":"l","nodeType":"VariableDeclaration","scope":2365,"src":"278:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2327,"name":"uint256","nodeType":"ElementaryTypeName","src":"278:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2330,"mutability":"mutable","name":"h","nodeType":"VariableDeclaration","scope":2365,"src":"289:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2329,"name":"uint256","nodeType":"ElementaryTypeName","src":"289:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"277:22:16"},"scope":2540,"src":"216:206:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2476,"nodeType":"Block","src":"539:352:16","statements":[{"assignments":[2377],"declarations":[{"constant":false,"id":2377,"mutability":"mutable","name":"pow2","nodeType":"VariableDeclaration","scope":2476,"src":"549:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2376,"name":"uint256","nodeType":"ElementaryTypeName","src":"549:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2382,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2378,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"564:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":2380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"568:2:16","subExpression":{"id":2379,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"569:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"564:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"549:21:16"},{"expression":{"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2383,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"580:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"id":2384,"name":"pow2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2377,"src":"585:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"580:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2386,"nodeType":"ExpressionStatement","src":"580:9:16"},{"expression":{"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2387,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2367,"src":"599:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"id":2388,"name":"pow2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2377,"src":"604:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"599:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2390,"nodeType":"ExpressionStatement","src":"599:9:16"},{"expression":{"id":2402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2391,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2367,"src":"618:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2392,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2369,"src":"623:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"id":2394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"629:5:16","subExpression":{"id":2393,"name":"pow2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2377,"src":"630:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2395,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"628:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2396,"name":"pow2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2377,"src":"638:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"628:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"645:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"628:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2400,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"627:20:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"623:24:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"618:29:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2403,"nodeType":"ExpressionStatement","src":"618:29:16"},{"assignments":[2405],"declarations":[{"constant":false,"id":2405,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":2476,"src":"657:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2404,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2407,"initialValue":{"hexValue":"31","id":2406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"669:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"657:13:16"},{"expression":{"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2408,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"680:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"685:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2410,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"689:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2411,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"693:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"689:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"685:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"680:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2415,"nodeType":"ExpressionStatement","src":"680:14:16"},{"expression":{"id":2422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2416,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"704:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"709:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2418,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"713:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2419,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"717:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"713:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"709:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"704:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2423,"nodeType":"ExpressionStatement","src":"704:14:16"},{"expression":{"id":2430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2424,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"728:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"733:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2426,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"737:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2427,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"741:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"737:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"733:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"728:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2431,"nodeType":"ExpressionStatement","src":"728:14:16"},{"expression":{"id":2438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2432,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"752:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"757:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2434,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"761:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2435,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"765:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"761:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"757:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"752:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2439,"nodeType":"ExpressionStatement","src":"752:14:16"},{"expression":{"id":2446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2440,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"776:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"781:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2442,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"785:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2443,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"789:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"785:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"781:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"776:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2447,"nodeType":"ExpressionStatement","src":"776:14:16"},{"expression":{"id":2454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2448,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"800:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"805:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2450,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"809:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2451,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"813:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"809:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"805:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"800:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2455,"nodeType":"ExpressionStatement","src":"800:14:16"},{"expression":{"id":2462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2456,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"824:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"829:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2458,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"833:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2459,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"837:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"833:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"829:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"824:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2463,"nodeType":"ExpressionStatement","src":"824:14:16"},{"expression":{"id":2470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2464,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"848:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"853:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2466,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"857:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2467,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"861:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"857:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"853:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"848:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2471,"nodeType":"ExpressionStatement","src":"848:14:16"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2472,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2367,"src":"879:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2473,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"883:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"879:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2375,"id":2475,"nodeType":"Return","src":"872:12:16"}]},"id":2477,"implemented":true,"kind":"function","modifiers":[],"name":"fullDiv","nodeType":"FunctionDefinition","parameters":{"id":2372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2367,"mutability":"mutable","name":"l","nodeType":"VariableDeclaration","scope":2477,"src":"454:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2366,"name":"uint256","nodeType":"ElementaryTypeName","src":"454:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2369,"mutability":"mutable","name":"h","nodeType":"VariableDeclaration","scope":2477,"src":"473:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2368,"name":"uint256","nodeType":"ElementaryTypeName","src":"473:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2371,"mutability":"mutable","name":"d","nodeType":"VariableDeclaration","scope":2477,"src":"492:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2370,"name":"uint256","nodeType":"ElementaryTypeName","src":"492:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"444:63:16"},"returnParameters":{"id":2375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2374,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2477,"src":"530:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2373,"name":"uint256","nodeType":"ElementaryTypeName","src":"530:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"529:9:16"},"scope":2540,"src":"428:463:16","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2538,"nodeType":"Block","src":"1008:262:16","statements":[{"assignments":[2489,2491],"declarations":[{"constant":false,"id":2489,"mutability":"mutable","name":"l","nodeType":"VariableDeclaration","scope":2538,"src":"1019:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2488,"name":"uint256","nodeType":"ElementaryTypeName","src":"1019:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2491,"mutability":"mutable","name":"h","nodeType":"VariableDeclaration","scope":2538,"src":"1030:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2490,"name":"uint256","nodeType":"ElementaryTypeName","src":"1030:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2496,"initialValue":{"arguments":[{"id":2493,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2479,"src":"1051:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2494,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"1054:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2492,"name":"fullMul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2365,"src":"1043:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256,uint256)"}},"id":2495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1043:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1018:38:16"},{"assignments":[2498],"declarations":[{"constant":false,"id":2498,"mutability":"mutable","name":"mm","nodeType":"VariableDeclaration","scope":2538,"src":"1067:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2497,"name":"uint256","nodeType":"ElementaryTypeName","src":"1067:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2504,"initialValue":{"arguments":[{"id":2500,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2479,"src":"1087:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2501,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"1090:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2502,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"1093:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2499,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"1080:6:16","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1080:15:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1067:28:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2505,"name":"mm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2498,"src":"1109:2:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2506,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"1114:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1109:6:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2512,"nodeType":"IfStatement","src":"1105:18:16","trueBody":{"expression":{"id":2510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2508,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"1117:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":2509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1122:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1117:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2511,"nodeType":"ExpressionStatement","src":"1117:6:16"}},{"expression":{"id":2515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2513,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"1133:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":2514,"name":"mm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2498,"src":"1138:2:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1133:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2516,"nodeType":"ExpressionStatement","src":"1133:7:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2517,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"1155:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1160:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1155:6:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2524,"nodeType":"IfStatement","src":"1151:24:16","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2520,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"1170:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2521,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"1174:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1170:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2487,"id":2523,"nodeType":"Return","src":"1163:12:16"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2526,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"1194:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2527,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"1198:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1194:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57","id":2529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1201:28:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9573a614b6ab65c92932376c168e5635a05a20769ae8cb8b8a2d9575aad107da","typeString":"literal_string \"FullMath: FULLDIV_OVERFLOW\""},"value":"FullMath: FULLDIV_OVERFLOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9573a614b6ab65c92932376c168e5635a05a20769ae8cb8b8a2d9575aad107da","typeString":"literal_string \"FullMath: FULLDIV_OVERFLOW\""}],"id":2525,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1186:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1186:44:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2531,"nodeType":"ExpressionStatement","src":"1186:44:16"},{"expression":{"arguments":[{"id":2533,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"1255:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2534,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"1258:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2535,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"1261:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2532,"name":"fullDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2477,"src":"1247:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1247:16:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2487,"id":2537,"nodeType":"Return","src":"1240:23:16"}]},"id":2539,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nodeType":"FunctionDefinition","parameters":{"id":2484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2479,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","scope":2539,"src":"922:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2478,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2481,"mutability":"mutable","name":"y","nodeType":"VariableDeclaration","scope":2539,"src":"941:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2480,"name":"uint256","nodeType":"ElementaryTypeName","src":"941:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2483,"mutability":"mutable","name":"d","nodeType":"VariableDeclaration","scope":2539,"src":"960:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2482,"name":"uint256","nodeType":"ElementaryTypeName","src":"960:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"912:63:16"},"returnParameters":{"id":2487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2486,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2539,"src":"999:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2485,"name":"uint256","nodeType":"ElementaryTypeName","src":"999:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"998:9:16"},"scope":2540,"src":"897:373:16","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2541,"src":"193:1079:16"}],"src":"38:1235:16"},"id":16},"contracts/periphery/libraries/TransferHelper.sol":{"ast":{"absolutePath":"contracts/periphery/libraries/TransferHelper.sol","exportedSymbols":{"TransferHelper":[2700]},"id":2701,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":2542,"literals":["solidity",">=","0.6",".0"],"nodeType":"PragmaDirective","src":"46:24:17"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2700,"linearizedBaseContracts":[2700],"name":"TransferHelper","nodeType":"ContractDefinition","nodes":[{"body":{"id":2584,"nodeType":"Block","src":"314:332:17","statements":[{"assignments":[2552,2554],"declarations":[{"constant":false,"id":2552,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","scope":2584,"src":"390:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2551,"name":"bool","nodeType":"ElementaryTypeName","src":"390:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2554,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","scope":2584,"src":"404:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2553,"name":"bytes","nodeType":"ElementaryTypeName","src":"404:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2564,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783039356561376233","id":2559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"459:10:17","typeDescriptions":{"typeIdentifier":"t_rational_157198259_by_1","typeString":"int_const 157198259"},"value":"0x095ea7b3"},{"id":2560,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2546,"src":"471:2:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2561,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2548,"src":"475:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_157198259_by_1","typeString":"int_const 157198259"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2557,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"436:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"436:22:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"436:45:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2555,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2544,"src":"425:5:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"425:10:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"425:57:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"389:93:17"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2566,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"513:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2567,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2554,"src":"525:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"525:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"540:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"525:16:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":2573,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2554,"src":"556:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":2575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"563:4:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":2574,"name":"bool","nodeType":"ElementaryTypeName","src":"563:4:17","typeDescriptions":{}}}],"id":2576,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"562:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":2571,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"545:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"545:10:17","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":2577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"545:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"525:44:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"524:46:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"513:57:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a3a73616665417070726f76653a20617070726f7665206661696c6564","id":2581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"584:45:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123","typeString":"literal_string \"TransferHelper::safeApprove: approve failed\""},"value":"TransferHelper::safeApprove: approve failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123","typeString":"literal_string \"TransferHelper::safeApprove: approve failed\""}],"id":2565,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"492:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"492:147:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2583,"nodeType":"ExpressionStatement","src":"492:147:17"}]},"id":2585,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nodeType":"FunctionDefinition","parameters":{"id":2549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2544,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":2585,"src":"242:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2543,"name":"address","nodeType":"ElementaryTypeName","src":"242:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2546,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":2585,"src":"265:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2545,"name":"address","nodeType":"ElementaryTypeName","src":"265:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2548,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":2585,"src":"285:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2547,"name":"uint256","nodeType":"ElementaryTypeName","src":"285:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"232:72:17"},"returnParameters":{"id":2550,"nodeType":"ParameterList","parameters":[],"src":"314:0:17"},"scope":2700,"src":"212:434:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2627,"nodeType":"Block","src":"755:335:17","statements":[{"assignments":[2595,2597],"declarations":[{"constant":false,"id":2595,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","scope":2627,"src":"832:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2594,"name":"bool","nodeType":"ElementaryTypeName","src":"832:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2597,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","scope":2627,"src":"846:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2596,"name":"bytes","nodeType":"ElementaryTypeName","src":"846:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2607,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30786139303539636262","id":2602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"901:10:17","typeDescriptions":{"typeIdentifier":"t_rational_2835717307_by_1","typeString":"int_const 2835717307"},"value":"0xa9059cbb"},{"id":2603,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2589,"src":"913:2:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2604,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2591,"src":"917:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2835717307_by_1","typeString":"int_const 2835717307"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2600,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"878:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"878:22:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"878:45:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2598,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2587,"src":"867:5:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"867:10:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"867:57:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"831:93:17"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2609,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2595,"src":"955:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2610,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2597,"src":"967:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"967:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"982:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"967:16:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":2616,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2597,"src":"998:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":2618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1005:4:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":2617,"name":"bool","nodeType":"ElementaryTypeName","src":"1005:4:17","typeDescriptions":{}}}],"id":2619,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1004:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":2614,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"987:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"987:10:17","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"987:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"967:44:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2622,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"966:46:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"955:57:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564","id":2624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1026:47:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611","typeString":"literal_string \"TransferHelper::safeTransfer: transfer failed\""},"value":"TransferHelper::safeTransfer: transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611","typeString":"literal_string \"TransferHelper::safeTransfer: transfer failed\""}],"id":2608,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"934:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"934:149:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2626,"nodeType":"ExpressionStatement","src":"934:149:17"}]},"id":2628,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nodeType":"FunctionDefinition","parameters":{"id":2592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2587,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":2628,"src":"683:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2586,"name":"address","nodeType":"ElementaryTypeName","src":"683:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2589,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":2628,"src":"706:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2588,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2591,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":2628,"src":"726:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2590,"name":"uint256","nodeType":"ElementaryTypeName","src":"726:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"673:72:17"},"returnParameters":{"id":2593,"nodeType":"ParameterList","parameters":[],"src":"755:0:17"},"scope":2700,"src":"652:438:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2673,"nodeType":"Block","src":"1225:357:17","statements":[{"assignments":[2640,2642],"declarations":[{"constant":false,"id":2640,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","scope":2673,"src":"1314:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2639,"name":"bool","nodeType":"ElementaryTypeName","src":"1314:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2642,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","scope":2673,"src":"1328:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2641,"name":"bytes","nodeType":"ElementaryTypeName","src":"1328:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2653,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783233623837326464","id":2647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1383:10:17","typeDescriptions":{"typeIdentifier":"t_rational_599290589_by_1","typeString":"int_const 599290589"},"value":"0x23b872dd"},{"id":2648,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2632,"src":"1395:4:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2649,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2634,"src":"1401:2:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2650,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"1405:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_599290589_by_1","typeString":"int_const 599290589"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2645,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1360:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1360:22:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1360:51:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2643,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2630,"src":"1349:5:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1349:10:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1349:63:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1313:99:17"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2655,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2640,"src":"1443:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2656,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2642,"src":"1455:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1455:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1470:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1455:16:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":2662,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2642,"src":"1486:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":2664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1493:4:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":2663,"name":"bool","nodeType":"ElementaryTypeName","src":"1493:4:17","typeDescriptions":{}}}],"id":2665,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1492:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":2660,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1475:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1475:10:17","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":2666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1475:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1455:44:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2668,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1454:46:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1443:57:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c6564","id":2670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1514:51:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c","typeString":"literal_string \"TransferHelper::transferFrom: transferFrom failed\""},"value":"TransferHelper::transferFrom: transferFrom failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c","typeString":"literal_string \"TransferHelper::transferFrom: transferFrom failed\""}],"id":2654,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1422:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:153:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2672,"nodeType":"ExpressionStatement","src":"1422:153:17"}]},"id":2674,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nodeType":"FunctionDefinition","parameters":{"id":2637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2630,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":2674,"src":"1131:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2629,"name":"address","nodeType":"ElementaryTypeName","src":"1131:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2632,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","scope":2674,"src":"1154:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2631,"name":"address","nodeType":"ElementaryTypeName","src":"1154:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2634,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":2674,"src":"1176:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2633,"name":"address","nodeType":"ElementaryTypeName","src":"1176:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2636,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":2674,"src":"1196:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2635,"name":"uint256","nodeType":"ElementaryTypeName","src":"1196:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1121:94:17"},"returnParameters":{"id":2638,"nodeType":"ParameterList","parameters":[],"src":"1225:0:17"},"scope":2700,"src":"1096:486:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2698,"nodeType":"Block","src":"1649:153:17","statements":[{"assignments":[2682,null],"declarations":[{"constant":false,"id":2682,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","scope":2698,"src":"1660:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2681,"name":"bool","nodeType":"ElementaryTypeName","src":"1660:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":2692,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":2689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1710:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1700:9:17","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2687,"name":"bytes","nodeType":"ElementaryTypeName","src":"1704:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1700:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2683,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2676,"src":"1678:2:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1678:7:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":2685,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2678,"src":"1693:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1678:21:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1678:35:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1659:54:17"},{"expression":{"arguments":[{"id":2694,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2682,"src":"1731:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a3a736166655472616e73666572414d423a20414d42207472616e73666572206661696c6564","id":2695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1740:54:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_d57fdbe46d5fb4f38087248fef3a308deb9f5ba77514585528bf7bb2cdcfe568","typeString":"literal_string \"TransferHelper::safeTransferAMB: AMB transfer failed\""},"value":"TransferHelper::safeTransferAMB: AMB transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d57fdbe46d5fb4f38087248fef3a308deb9f5ba77514585528bf7bb2cdcfe568","typeString":"literal_string \"TransferHelper::safeTransferAMB: AMB transfer failed\""}],"id":2693,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1723:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1723:72:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2697,"nodeType":"ExpressionStatement","src":"1723:72:17"}]},"id":2699,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAMB","nodeType":"FunctionDefinition","parameters":{"id":2679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2676,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","scope":2699,"src":"1613:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2675,"name":"address","nodeType":"ElementaryTypeName","src":"1613:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2678,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":2699,"src":"1625:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2677,"name":"uint256","nodeType":"ElementaryTypeName","src":"1625:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1612:27:17"},"returnParameters":{"id":2680,"nodeType":"ParameterList","parameters":[],"src":"1649:0:17"},"scope":2700,"src":"1588:214:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":2701,"src":"183:1621:17"}],"src":"46:1759:17"},"id":17}},"contracts":{"contracts/core/interfaces/IAstraCallee.sol":{"IAstraCallee":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"astraCall","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"astraCall(address,uint256,uint256,bytes)":"ee906f6b"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"astraCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IAstraCallee.sol\":\"IAstraCallee\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IAstraCallee.sol\":{\"keccak256\":\"0xf5d820076bb4d5760e8e8370c9527a2b2f41e890abbfd3f33dd84081bc75eaf4\",\"urls\":[\"bzz-raw://802e26558411dccbe8f716957fa42d240edb1b7750fab48c844179c2a5e42ff0\",\"dweb:/ipfs/QmacHZo2nvJWxD9tbfmNTf3keLAMH9QB5TXrSwhEFQiGpG\"]}},\"version\":1}"}},"contracts/core/interfaces/IAstraERC20.sol":{"IAstraERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IAstraERC20.sol\":\"IAstraERC20\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IAstraERC20.sol\":{\"keccak256\":\"0x68e4625d34493938439a8da34c58e56f1a57c3f8b9bb063fb1f6278e26786625\",\"urls\":[\"bzz-raw://e4d09db7ad13bf08b471933ce7b7eeb57f9a33342d13823ebd3516ca0f1c8742\",\"dweb:/ipfs/Qma631BXfMKZTEr2v8yVUkPocWSVy9MpmJE2yMakKcFywW\"]}},\"version\":1}"}},"contracts/core/interfaces/IAstraFactory.sol":{"IAstraFactory":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"PairCreated","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allPairs","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allPairsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"createPair","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeToSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"getPair","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"setFeeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"setFeeToSetter","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allPairs(uint256)":"1e3dd18b","allPairsLength()":"574f2ba3","createPair(address,address)":"c9c65396","feeTo()":"017e7e58","feeToSetter()":"094b7415","getPair(address,address)":"e6a43905","setFeeTo(address)":"f46901ed","setFeeToSetter(address)":"a2e74af6"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"PairCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allPairsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeToSetter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IAstraFactory.sol\":\"IAstraFactory\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IAstraFactory.sol\":{\"keccak256\":\"0x1d8cfacb873119cce028428fbfc6741a17f9dff23726b6f9262be38b04d2147d\",\"urls\":[\"bzz-raw://8161eaf5b9b22d8d7bb774f33dd0465b3796decc507f6509d02800052b6da351\",\"dweb:/ipfs/QmWhWSfZqWbx9iBRsV2PB2oEGcV7tgp8TthHH6ZYbN2JCP\"]}},\"version\":1}"}},"contracts/core/interfaces/IAstraPair.sol":{"IAstraPair":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"},{"internalType":"uint32","name":"blockTimestampLast","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","MINIMUM_LIQUIDITY()":"ba9a7a56","PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address)":"89afcb44","decimals()":"313ce567","factory()":"c45a0155","getReserves()":"0902f1ac","initialize(address,address)":"485cc955","kLast()":"7464fc3d","mint(address)":"6a627842","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","price0CumulativeLast()":"5909c0d5","price1CumulativeLast()":"5a3d5493","skim(address)":"bc25cf77","swap(uint256,uint256,address,bytes)":"022c0d9f","symbol()":"95d89b41","sync()":"fff6cae9","token0()":"0dfe1681","token1()":"d21220a7","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"name\":\"Sync\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"skim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IAstraPair.sol\":\"IAstraPair\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IAstraPair.sol\":{\"keccak256\":\"0xd2259aac0746706697d6e8097a48b592308fb1e1e78077cc3e0540234dee6648\",\"urls\":[\"bzz-raw://525ef590cf7e5c54030527703a7409b74c70497715aebf8dae0b877ee136dac7\",\"dweb:/ipfs/QmVgR4Pk3i8X8oS8xxNnVsFkDXXGP2wu4YvhG23e3z5K9q\"]}},\"version\":1}"}},"contracts/core/interfaces/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IERC20.sol\":{\"keccak256\":\"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3\",\"urls\":[\"bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66\",\"dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb\"]}},\"version\":1}"}},"contracts/periphery/interfaces/IAstraMigrator.sol":{"IAstraMigrator":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"migrate(address,uint256,uint256,address,uint256)":"b7df1d25"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/interfaces/IAstraMigrator.sol\":\"IAstraMigrator\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/interfaces/IAstraMigrator.sol\":{\"keccak256\":\"0x28f199cd7493306e924ef8004b90eaaf1b6587e4240a2c853058d6788ec670f5\",\"urls\":[\"bzz-raw://92178cd1da83473ba10aab447751f1edb3d9736602c6934c290424ca88a66824\",\"dweb:/ipfs/QmchKnSPgRspNCis69t555UYAsrhaaYbScanEs3HFs9P7t\"]}},\"version\":1}"}},"contracts/periphery/interfaces/IAstraRouter01.sol":{"IAstraRouter01":{"abi":[{"inputs":[],"name":"SAMB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAMBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityAMB","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAMB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAMBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityAMB","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAMB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAMBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityAMBWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAMB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapAMBForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactAMBForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForAMB","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactAMB","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"SAMB()":"90793ea8","addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)":"e8e33700","addLiquidityAMB(address,uint256,uint256,uint256,address,uint256)":"84b0b3a2","factory()":"c45a0155","getAmountIn(uint256,uint256,uint256)":"85f8c259","getAmountOut(uint256,uint256,uint256)":"054d50d4","getAmountsIn(uint256,address[])":"1f00ca74","getAmountsOut(uint256,address[])":"d06ca61f","quote(uint256,uint256,uint256)":"ad615dec","removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)":"baa2abde","removeLiquidityAMB(address,uint256,uint256,uint256,address,uint256)":"e77bdfc5","removeLiquidityAMBWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"6eeccb89","removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"2195995c","swapAMBForExactTokens(uint256,address[],address,uint256)":"ef0dc4be","swapExactAMBForTokens(uint256,address[],address,uint256)":"ac8ee3b6","swapExactTokensForAMB(uint256,uint256,address[],address,uint256)":"e5dee373","swapExactTokensForTokens(uint256,uint256,address[],address,uint256)":"38ed1739","swapTokensForExactAMB(uint256,uint256,address[],address,uint256)":"40d2463f","swapTokensForExactTokens(uint256,uint256,address[],address,uint256)":"8803dbee"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"SAMB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidityAMB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityAMB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityAMBWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapAMBForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactAMBForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForAMB\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactAMB\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/interfaces/IAstraRouter01.sol\":\"IAstraRouter01\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/interfaces/IAstraRouter01.sol\":{\"keccak256\":\"0x41f94bb4b263f1a0a17e4ca169a7057ecc6d9ff5f575c9047a57e062f7680708\",\"urls\":[\"bzz-raw://d5e155912a41505ccd8702dabc77193fb0bb0601cc0b3efc447aefa98b3a9699\",\"dweb:/ipfs/Qmaev2znL8F5UWbiZJMe124SATkzmrQz4kB5uEeBKyU5iZ\"]}},\"version\":1}"}},"contracts/periphery/interfaces/IAstraRouter02.sol":{"IAstraRouter02":{"abi":[{"inputs":[],"name":"SAMB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAMBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityAMB","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAMB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAMBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityAMB","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAMB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAMBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityAMBSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountAMB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAMBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityAMBWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAMB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAMBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityAMBWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountAMB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapAMBForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactAMBForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactAMBForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForAMB","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForAMBSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactAMB","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"SAMB()":"90793ea8","addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)":"e8e33700","addLiquidityAMB(address,uint256,uint256,uint256,address,uint256)":"84b0b3a2","factory()":"c45a0155","getAmountIn(uint256,uint256,uint256)":"85f8c259","getAmountOut(uint256,uint256,uint256)":"054d50d4","getAmountsIn(uint256,address[])":"1f00ca74","getAmountsOut(uint256,address[])":"d06ca61f","quote(uint256,uint256,uint256)":"ad615dec","removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)":"baa2abde","removeLiquidityAMB(address,uint256,uint256,uint256,address,uint256)":"e77bdfc5","removeLiquidityAMBSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)":"1e0bcdae","removeLiquidityAMBWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"6eeccb89","removeLiquidityAMBWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"cf795867","removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"2195995c","swapAMBForExactTokens(uint256,address[],address,uint256)":"ef0dc4be","swapExactAMBForTokens(uint256,address[],address,uint256)":"ac8ee3b6","swapExactAMBForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)":"c1c222df","swapExactTokensForAMB(uint256,uint256,address[],address,uint256)":"e5dee373","swapExactTokensForAMBSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)":"8402322d","swapExactTokensForTokens(uint256,uint256,address[],address,uint256)":"38ed1739","swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)":"5c11d795","swapTokensForExactAMB(uint256,uint256,address[],address,uint256)":"40d2463f","swapTokensForExactTokens(uint256,uint256,address[],address,uint256)":"8803dbee"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"SAMB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidityAMB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityAMB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityAMBSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountAMB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityAMBWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityAMBWithPermitSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountAMB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapAMBForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactAMBForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactAMBForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForAMB\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForAMBSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactAMB\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/interfaces/IAstraRouter02.sol\":\"IAstraRouter02\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/interfaces/IAstraRouter01.sol\":{\"keccak256\":\"0x41f94bb4b263f1a0a17e4ca169a7057ecc6d9ff5f575c9047a57e062f7680708\",\"urls\":[\"bzz-raw://d5e155912a41505ccd8702dabc77193fb0bb0601cc0b3efc447aefa98b3a9699\",\"dweb:/ipfs/Qmaev2znL8F5UWbiZJMe124SATkzmrQz4kB5uEeBKyU5iZ\"]},\"contracts/periphery/interfaces/IAstraRouter02.sol\":{\"keccak256\":\"0xe268d7aa46615d29d43e4d2bec9319eb7473627533525e529588d233ec3d2cc9\",\"urls\":[\"bzz-raw://836685e7d3c4b1831001487965bec6b8736fe484e53ffb53804cba4dedd7ba54\",\"dweb:/ipfs/QmYkCCqU7MXVGduf5sYkWRY3ykLKcFzjtxjMx2n4jvmCEb\"]}},\"version\":1}"}},"contracts/periphery/interfaces/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/interfaces/IERC20.sol\":{\"keccak256\":\"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3\",\"urls\":[\"bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66\",\"dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb\"]}},\"version\":1}"}},"contracts/periphery/interfaces/ISAMB.sol":{"ISAMB":{"abi":[{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"deposit()":"d0e30db0","transfer(address,uint256)":"a9059cbb","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/interfaces/ISAMB.sol\":\"ISAMB\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/interfaces/ISAMB.sol\":{\"keccak256\":\"0xaa6bcbe5a4eda8bed6cb5c2779b1607bfb5e2aa026729ab120e59ec3c93d65c1\",\"urls\":[\"bzz-raw://6741ee95b1b38a1fd9b541eaadebbf81ffa7787049d00ebe410d2126964e3cb2\",\"dweb:/ipfs/QmSchE668jWboooBDstjTNMKuk8f6wgVQWibhXBTTsGDsF\"]}},\"version\":1}"}},"contracts/periphery/interfaces/V1/IAstraV1Exchange.sol":{"IAstraV1Exchange":{"abi":[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"AMBToTokenSwapInput","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenToAMBSwapInput","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"AMBToTokenSwapInput(uint256,uint256)":"b11c839c","balanceOf(address)":"70a08231","removeLiquidity(uint256,uint256,uint256,uint256)":"f88bf15a","tokenToAMBSwapInput(uint256,uint256,uint256)":"61862169","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"AMBToTokenSwapInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenToAMBSwapInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/interfaces/V1/IAstraV1Exchange.sol\":\"IAstraV1Exchange\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/interfaces/V1/IAstraV1Exchange.sol\":{\"keccak256\":\"0x98b4fc0788e0c690dc9f32086c4f3dec01d0bacead9463f302f61794f9d01baf\",\"urls\":[\"bzz-raw://188f6931c695a854ebefae8aca7bba7a0f401303a91e309991ce00a12e75a509\",\"dweb:/ipfs/QmUVQheF7zE8qGdUZfdmiceGkhpCGbS224TGLFggLGN7Aw\"]}},\"version\":1}"}},"contracts/periphery/interfaces/V1/IAstraV1Factory.sol":{"IAstraV1Factory":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getExchange","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getExchange(address)":"06f2bf62"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getExchange\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/interfaces/V1/IAstraV1Factory.sol\":\"IAstraV1Factory\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/interfaces/V1/IAstraV1Factory.sol\":{\"keccak256\":\"0x4116b464fdb13158f841346fad13b237dc6498d9db48ffab3f5ebe707e256ee7\",\"urls\":[\"bzz-raw://0203c6ca28866e670b226ac448801e8caee73b554a3106c81eb0a270317b9723\",\"dweb:/ipfs/QmeNTHK7vtHJB2PaqiCZmpvNMB9ZttE2HNBVFd6FrMK7DE\"]}},\"version\":1}"}},"contracts/periphery/libraries/AstraOracleLibrary.sol":{"AstraOracleLibrary":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9182a8ff378a550997e2334958cf8f8c6ee3f0837d198d51fd7e917e6355fc764736f6c63430007060033","opcodes":"PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 XOR 0x2A DUP16 RETURN PUSH25 0xA550997E2334958CF8F8C6EE3F0837D198D51FD7E917E6355F 0xC7 PUSH5 0x736F6C6343 STOP SMOD MOD STOP CALLER ","sourceMap":"193:1428:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9182a8ff378a550997e2334958cf8f8c6ee3f0837d198d51fd7e917e6355fc764736f6c63430007060033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 XOR 0x2A DUP16 RETURN PUSH25 0xA550997E2334958CF8F8C6EE3F0837D198D51FD7E917E6355F 0xC7 PUSH5 0x736F6C6343 STOP SMOD MOD STOP CALLER ","sourceMap":"193:1428:12:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/libraries/AstraOracleLibrary.sol\":\"AstraOracleLibrary\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IAstraPair.sol\":{\"keccak256\":\"0xd2259aac0746706697d6e8097a48b592308fb1e1e78077cc3e0540234dee6648\",\"urls\":[\"bzz-raw://525ef590cf7e5c54030527703a7409b74c70497715aebf8dae0b877ee136dac7\",\"dweb:/ipfs/QmVgR4Pk3i8X8oS8xxNnVsFkDXXGP2wu4YvhG23e3z5K9q\"]},\"contracts/periphery/libraries/AstraOracleLibrary.sol\":{\"keccak256\":\"0x424adb3090303ecc84ae9db02fddacce5ca914d37606dcc599122be73be9e4e2\",\"urls\":[\"bzz-raw://526c8a6e6057b44d2bfa85ef3b8e10bcb78f42acc5250f7d45712e55c683e492\",\"dweb:/ipfs/QmVXKXwJvkcuE6d26GRowfDSq5k56DP59JKKxDnU2GZfru\"]},\"contracts/periphery/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]},\"contracts/periphery/libraries/BitMath.sol\":{\"keccak256\":\"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727\",\"dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH\"]},\"contracts/periphery/libraries/FixedPoint.sol\":{\"keccak256\":\"0x127ecf7db1a5b5a38610f3f11337715fc00ba57ee412fa6978dcf2cf58eccdf7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f7027d233bc1f41809e484d6866ddf2408897994cbe8c9ab99f397767bbd13db\",\"dweb:/ipfs/QmPr72ABBnRTSoZZmkygzgskZzogZb1M74U9Tf2DHH62xn\"]},\"contracts/periphery/libraries/FullMath.sol\":{\"keccak256\":\"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9\",\"license\":\"CC-BY-4.0\",\"urls\":[\"bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407\",\"dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B\"]}},\"version\":1}"}},"contracts/periphery/libraries/Babylonian.sol":{"Babylonian":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122021d3f6279bcacd3073e10207c533a273d46b4504c909309be9f1bc813655713964736f6c63430007060033","opcodes":"PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 0xD3 0xF6 0x27 SWAP12 0xCA 0xCD ADDRESS PUSH20 0xE10207C533A273D46B4504C909309BE9F1BC8136 SSTORE PUSH18 0x3964736F6C63430007060033000000000000 ","sourceMap":"210:1371:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122021d3f6279bcacd3073e10207c533a273d46b4504c909309be9f1bc813655713964736f6c63430007060033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 0xD3 0xF6 0x27 SWAP12 0xCA 0xCD ADDRESS PUSH20 0xE10207C533A273D46B4504C909309BE9F1BC8136 SSTORE PUSH18 0x3964736F6C63430007060033000000000000 ","sourceMap":"210:1371:13:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/libraries/Babylonian.sol\":\"Babylonian\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]}},\"version\":1}"}},"contracts/periphery/libraries/BitMath.sol":{"BitMath":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca4a5d2f6811601a6c8d985f13667cdb6672804d8f351fff926605ba54b10c4164736f6c63430007060033","opcodes":"PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA 0x4A 0x5D 0x2F PUSH9 0x11601A6C8D985F1366 PUSH29 0xDB6672804D8F351FFF926605BA54B10C4164736F6C6343000706003300 ","sourceMap":"71:2043:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca4a5d2f6811601a6c8d985f13667cdb6672804d8f351fff926605ba54b10c4164736f6c63430007060033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA 0x4A 0x5D 0x2F PUSH9 0x11601A6C8D985F1366 PUSH29 0xDB6672804D8F351FFF926605BA54B10C4164736F6C6343000706003300 ","sourceMap":"71:2043:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/libraries/BitMath.sol\":\"BitMath\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/libraries/BitMath.sol\":{\"keccak256\":\"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727\",\"dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH\"]}},\"version\":1}"}},"contracts/periphery/libraries/FixedPoint.sol":{"FixedPoint":{"abi":[{"inputs":[],"name":"Q112","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESOLUTION","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60b9610025600b82828239805160001a60731461001857fe5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80633bf7a83e146042578063552f888a14605a575b600080fd5b60486076565b60408051918252519081900360200190f35b6060607e565b6040805160ff9092168252519081900360200190f35b600160701b81565b60708156fea26469706673582212206e1d87b6b33dcb1349e4894a375e9a0660b8ef1e994d8134707dcc408f69790c64736f6c63430007060033","opcodes":"PUSH1 0xB9 PUSH2 0x25 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x18 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3BF7A83E EQ PUSH1 0x42 JUMPI DUP1 PUSH4 0x552F888A EQ PUSH1 0x5A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x48 PUSH1 0x76 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x7E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x70 SHL DUP2 JUMP JUMPDEST PUSH1 0x70 DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH15 0x1D87B6B33DCB1349E4894A375E9A06 PUSH1 0xB8 0xEF 0x1E SWAP10 0x4D DUP2 CALLVALUE PUSH17 0x7DCC408F69790C64736F6C634300070600 CALLER ","sourceMap":"275:5884:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80633bf7a83e146042578063552f888a14605a575b600080fd5b60486076565b60408051918252519081900360200190f35b6060607e565b6040805160ff9092168252519081900360200190f35b600160701b81565b60708156fea26469706673582212206e1d87b6b33dcb1349e4894a375e9a0660b8ef1e994d8134707dcc408f69790c64736f6c63430007060033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3BF7A83E EQ PUSH1 0x42 JUMPI DUP1 PUSH4 0x552F888A EQ PUSH1 0x5A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x48 PUSH1 0x76 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x7E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x70 SHL DUP2 JUMP JUMPDEST PUSH1 0x70 DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH15 0x1D87B6B33DCB1349E4894A375E9A06 PUSH1 0xB8 0xEF 0x1E SWAP10 0x4D DUP2 CALLVALUE PUSH17 0x7DCC408F69790C64736F6C634300070600 CALLER ","sourceMap":"275:5884:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;564:62;;;:::i;:::-;;;;;;;;;;;;;;;;520:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;564:62;-1:-1:-1;;;564:62:15;:::o;520:38::-;555:3;520:38;:::o"},"methodIdentifiers":{"Q112()":"3bf7a83e","RESOLUTION()":"552f888a"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Q112\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESOLUTION\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/libraries/FixedPoint.sol\":\"FixedPoint\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]},\"contracts/periphery/libraries/BitMath.sol\":{\"keccak256\":\"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727\",\"dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH\"]},\"contracts/periphery/libraries/FixedPoint.sol\":{\"keccak256\":\"0x127ecf7db1a5b5a38610f3f11337715fc00ba57ee412fa6978dcf2cf58eccdf7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f7027d233bc1f41809e484d6866ddf2408897994cbe8c9ab99f397767bbd13db\",\"dweb:/ipfs/QmPr72ABBnRTSoZZmkygzgskZzogZb1M74U9Tf2DHH62xn\"]},\"contracts/periphery/libraries/FullMath.sol\":{\"keccak256\":\"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9\",\"license\":\"CC-BY-4.0\",\"urls\":[\"bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407\",\"dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B\"]}},\"version\":1}"}},"contracts/periphery/libraries/FullMath.sol":{"FullMath":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205ce901fc95399e7f8b0d93e6981ad6df6e11e48eea44977b5b092791524d1d0c64736f6c63430007060033","opcodes":"PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5C 0xE9 ADD 0xFC SWAP6 CODECOPY SWAP15 PUSH32 0x8B0D93E6981AD6DF6E11E48EEA44977B5B092791524D1D0C64736F6C63430007 MOD STOP CALLER ","sourceMap":"193:1079:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205ce901fc95399e7f8b0d93e6981ad6df6e11e48eea44977b5b092791524d1d0c64736f6c63430007060033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5C 0xE9 ADD 0xFC SWAP6 CODECOPY SWAP15 PUSH32 0x8B0D93E6981AD6DF6E11E48EEA44977B5B092791524D1D0C64736F6C63430007 MOD STOP CALLER ","sourceMap":"193:1079:16:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/libraries/FullMath.sol\":\"FullMath\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/libraries/FullMath.sol\":{\"keccak256\":\"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9\",\"license\":\"CC-BY-4.0\",\"urls\":[\"bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407\",\"dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B\"]}},\"version\":1}"}},"contracts/periphery/libraries/TransferHelper.sol":{"TransferHelper":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207a09de6ca0fd9294ccd00bf988b771e0c861949431f56681a5aa58c9576bd9c464736f6c63430007060033","opcodes":"PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0x9DE6CA0FD9294CCD00BF988B771E0C861949431F56681A5AA58C9 JUMPI PUSH12 0xD9C464736F6C634300070600 CALLER ","sourceMap":"183:1621:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207a09de6ca0fd9294ccd00bf988b771e0c861949431f56681a5aa58c9576bd9c464736f6c63430007060033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0x9DE6CA0FD9294CCD00BF988B771E0C861949431F56681A5AA58C9 JUMPI PUSH12 0xD9C464736F6C634300070600 CALLER ","sourceMap":"183:1621:17:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/periphery/libraries/TransferHelper.sol\":\"TransferHelper\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/periphery/libraries/TransferHelper.sol\":{\"keccak256\":\"0x91888c39fcda3d21089c867d943b013f02165203b62e6925b898e5652df313e0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ef6af53c706fd1e4a3f5b974bf46f5b811cad331126802f466a56e53b32757a7\",\"dweb:/ipfs/QmdWuxHaLq1wyFgTo5aBBAEcqE2XqGwi249rr8NsTY9qsu\"]}},\"version\":1}"}}}}}