{"id":"2333e3af9df0d4d7de8c8593ce63cb1e","_format":"hh-sol-build-info-1","solcVersion":"0.6.6","solcLongVersion":"0.6.6+commit.6c089d02","input":{"language":"Solidity","sources":{"contracts/pangolin-core/interfaces/IPangolinFactory.sol":{"content":"pragma solidity >=0.5.0;\r\n\r\ninterface IPangolinFactory {\r\n    event PairCreated(address indexed token0, address indexed token1, address pair, uint);\r\n\r\n    function feeTo() external view returns (address);\r\n    function feeToSetter() external view returns (address);\r\n\r\n    function getPair(address tokenA, address tokenB) external view returns (address pair);\r\n    function allPairs(uint) external view returns (address pair);\r\n    function allPairsLength() external view returns (uint);\r\n\r\n    function createPair(address tokenA, address tokenB) external returns (address pair);\r\n\r\n    function setFeeTo(address) external;\r\n    function setFeeToSetter(address) external;\r\n}\r\n"},"contracts/pangolin-core/interfaces/IPangolinPair.sol":{"content":"pragma solidity >=0.5.0;\r\n\r\ninterface IPangolinPair {\r\n    event Approval(address indexed owner, address indexed spender, uint value);\r\n    event Transfer(address indexed from, address indexed to, uint value);\r\n\r\n    function name() external pure returns (string memory);\r\n    function symbol() external pure returns (string memory);\r\n    function decimals() external pure returns (uint8);\r\n    function totalSupply() external view returns (uint);\r\n    function balanceOf(address owner) external view returns (uint);\r\n    function allowance(address owner, address spender) external view returns (uint);\r\n\r\n    function approve(address spender, uint value) external returns (bool);\r\n    function transfer(address to, uint value) external returns (bool);\r\n    function transferFrom(address from, address to, uint value) external returns (bool);\r\n\r\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\r\n    function PERMIT_TYPEHASH() external pure returns (bytes32);\r\n    function nonces(address owner) external view returns (uint);\r\n\r\n    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;\r\n\r\n    event Mint(address indexed sender, uint amount0, uint amount1);\r\n    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);\r\n    event Swap(\r\n        address indexed sender,\r\n        uint amount0In,\r\n        uint amount1In,\r\n        uint amount0Out,\r\n        uint amount1Out,\r\n        address indexed to\r\n    );\r\n    event Sync(uint112 reserve0, uint112 reserve1);\r\n\r\n    function MINIMUM_LIQUIDITY() external pure returns (uint);\r\n    function factory() external view returns (address);\r\n    function token0() external view returns (address);\r\n    function token1() external view returns (address);\r\n    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\r\n    function price0CumulativeLast() external view returns (uint);\r\n    function price1CumulativeLast() external view returns (uint);\r\n    function kLast() external view returns (uint);\r\n\r\n    function mint(address to) external returns (uint liquidity);\r\n    function burn(address to) external returns (uint amount0, uint amount1);\r\n    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;\r\n    function skim(address to) external;\r\n    function sync() external;\r\n\r\n    function initialize(address, address) external;\r\n}\r\n"},"contracts/pangolin-lib/libraries/TransferHelper.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\r\n\r\npragma solidity >=0.6.0;\r\n\r\n// helper methods for interacting with ERC20 tokens and sending AVAX that do not consistently return true/false\r\nlibrary TransferHelper {\r\n    function safeApprove(\r\n        address token,\r\n        address to,\r\n        uint256 value\r\n    ) internal {\r\n        // bytes4(keccak256(bytes('approve(address,uint256)')));\r\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));\r\n        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');\r\n    }\r\n\r\n    function safeTransfer(\r\n        address token,\r\n        address to,\r\n        uint256 value\r\n    ) internal {\r\n        // bytes4(keccak256(bytes('transfer(address,uint256)')));\r\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));\r\n        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');\r\n    }\r\n\r\n    function safeTransferFrom(\r\n        address token,\r\n        address from,\r\n        address to,\r\n        uint256 value\r\n    ) internal {\r\n        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));\r\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));\r\n        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');\r\n    }\r\n\r\n    function safeTransferAVAX(address to, uint256 value) internal {\r\n        (bool success, ) = to.call{value: value}(new bytes(0));\r\n        require(success, 'TransferHelper: AVAX_TRANSFER_FAILED');\r\n    }\r\n}\r\n"},"contracts/pangolin-periphery/interfaces/IERC20.sol":{"content":"pragma solidity >=0.5.0;\r\n\r\ninterface IERC20 {\r\n    event Approval(address indexed owner, address indexed spender, uint value);\r\n    event Transfer(address indexed from, address indexed to, uint value);\r\n\r\n    function name() external view returns (string memory);\r\n    function symbol() external view returns (string memory);\r\n    function decimals() external view returns (uint8);\r\n    function totalSupply() external view returns (uint);\r\n    function balanceOf(address owner) external view returns (uint);\r\n    function allowance(address owner, address spender) external view returns (uint);\r\n\r\n    function approve(address spender, uint value) external returns (bool);\r\n    function transfer(address to, uint value) external returns (bool);\r\n    function transferFrom(address from, address to, uint value) external returns (bool);\r\n}\r\n"},"contracts/pangolin-periphery/interfaces/IPangolinRouter.sol":{"content":"pragma solidity >=0.6.2;\r\n\r\ninterface IPangolinRouter {\r\n    function factory() external pure returns (address);\r\n    function WAVAX() external pure returns (address);\r\n\r\n    function addLiquidity(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint amountADesired,\r\n        uint amountBDesired,\r\n        uint amountAMin,\r\n        uint amountBMin,\r\n        address to,\r\n        uint deadline\r\n    ) external returns (uint amountA, uint amountB, uint liquidity);\r\n    function addLiquidityAVAX(\r\n        address token,\r\n        uint amountTokenDesired,\r\n        uint amountTokenMin,\r\n        uint amountAVAXMin,\r\n        address to,\r\n        uint deadline\r\n    ) external payable returns (uint amountToken, uint amountAVAX, uint liquidity);\r\n    function removeLiquidity(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint liquidity,\r\n        uint amountAMin,\r\n        uint amountBMin,\r\n        address to,\r\n        uint deadline\r\n    ) external returns (uint amountA, uint amountB);\r\n    function removeLiquidityAVAX(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountAVAXMin,\r\n        address to,\r\n        uint deadline\r\n    ) external returns (uint amountToken, uint amountAVAX);\r\n    function removeLiquidityWithPermit(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint liquidity,\r\n        uint amountAMin,\r\n        uint amountBMin,\r\n        address to,\r\n        uint deadline,\r\n        bool approveMax, uint8 v, bytes32 r, bytes32 s\r\n    ) external returns (uint amountA, uint amountB);\r\n    function removeLiquidityAVAXWithPermit(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountAVAXMin,\r\n        address to,\r\n        uint deadline,\r\n        bool approveMax, uint8 v, bytes32 r, bytes32 s\r\n    ) external returns (uint amountToken, uint amountAVAX);\r\n    function swapExactTokensForTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external returns (uint[] memory amounts);\r\n    function swapTokensForExactTokens(\r\n        uint amountOut,\r\n        uint amountInMax,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external returns (uint[] memory amounts);\r\n    function swapExactAVAXForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)\r\n        external\r\n        payable\r\n        returns (uint[] memory amounts);\r\n    function swapTokensForExactAVAX(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)\r\n        external\r\n        returns (uint[] memory amounts);\r\n    function swapExactTokensForAVAX(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)\r\n        external\r\n        returns (uint[] memory amounts);\r\n    function swapAVAXForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)\r\n        external\r\n        payable\r\n        returns (uint[] memory amounts);\r\n\r\n    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);\r\n    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);\r\n    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);\r\n    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);\r\n    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);\r\n\r\n    function removeLiquidityAVAXSupportingFeeOnTransferTokens(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountAVAXMin,\r\n        address to,\r\n        uint deadline\r\n    ) external returns (uint amountAVAX);\r\n    function removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountAVAXMin,\r\n        address to,\r\n        uint deadline,\r\n        bool approveMax, uint8 v, bytes32 r, bytes32 s\r\n    ) external returns (uint amountAVAX);\r\n\r\n    function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external;\r\n    function swapExactAVAXForTokensSupportingFeeOnTransferTokens(\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external payable;\r\n    function swapExactTokensForAVAXSupportingFeeOnTransferTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external;\r\n}\r\n"},"contracts/pangolin-periphery/interfaces/IWAVAX.sol":{"content":"pragma solidity >=0.5.0;\r\n\r\ninterface IWAVAX {\r\n    function deposit() external payable;\r\n    function transfer(address to, uint value) external returns (bool);\r\n    function balanceOf(address owner) external view returns (uint);\r\n    function withdraw(uint) external;\r\n}\r\n"},"contracts/pangolin-periphery/libraries/PangolinLibrary.sol":{"content":"pragma solidity >=0.5.0;\r\n\r\nimport '../../pangolin-core/interfaces/IPangolinFactory.sol';\r\nimport '../../pangolin-core/interfaces/IPangolinPair.sol';\r\n\r\nimport \"./SafeMath.sol\";\r\n\r\nlibrary PangolinLibrary {\r\n    using SafeMath for uint;\r\n\r\n    // returns sorted token addresses, used to handle return values from pairs sorted in this order\r\n    function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) {\r\n        require(tokenA != tokenB, 'PangolinLibrary: IDENTICAL_ADDRESSES');\r\n        (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);\r\n        require(token0 != address(0), 'PangolinLibrary: ZERO_ADDRESS');\r\n    }\r\n\r\n    // calculates the CREATE2 address for a pair without making any external calls\r\n    function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) {\r\n        (address token0, address token1) = sortTokens(tokenA, tokenB);\r\n        pair = address(uint(keccak256(abi.encodePacked(\r\n                hex'ff',\r\n                factory,\r\n                keccak256(abi.encodePacked(token0, token1)),\r\n                hex'40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545' // init code hash\r\n            ))));\r\n    }\r\n\r\n    // fetches and sorts the reserves for a pair\r\n    function getReserves(address factory, address tokenA, address tokenB) internal view returns (uint reserveA, uint reserveB) {\r\n        (address token0,) = sortTokens(tokenA, tokenB);\r\n        (uint reserve0, uint reserve1,) = IPangolinPair(pairFor(factory, tokenA, tokenB)).getReserves();\r\n        (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0);\r\n    }\r\n\r\n    // given some amount of an asset and pair reserves, returns an equivalent amount of the other asset\r\n    function quote(uint amountA, uint reserveA, uint reserveB) internal pure returns (uint amountB) {\r\n        require(amountA > 0, 'PangolinLibrary: INSUFFICIENT_AMOUNT');\r\n        require(reserveA > 0 && reserveB > 0, 'PangolinLibrary: INSUFFICIENT_LIQUIDITY');\r\n        amountB = amountA.mul(reserveB) / reserveA;\r\n    }\r\n\r\n    // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset\r\n    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) internal pure returns (uint amountOut) {\r\n        require(amountIn > 0, 'PangolinLibrary: INSUFFICIENT_INPUT_AMOUNT');\r\n        require(reserveIn > 0 && reserveOut > 0, 'PangolinLibrary: INSUFFICIENT_LIQUIDITY');\r\n        uint amountInWithFee = amountIn.mul(997);\r\n        uint numerator = amountInWithFee.mul(reserveOut);\r\n        uint denominator = reserveIn.mul(1000).add(amountInWithFee);\r\n        amountOut = numerator / denominator;\r\n    }\r\n\r\n    // given an output amount of an asset and pair reserves, returns a required input amount of the other asset\r\n    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) internal pure returns (uint amountIn) {\r\n        require(amountOut > 0, 'PangolinLibrary: INSUFFICIENT_OUTPUT_AMOUNT');\r\n        require(reserveIn > 0 && reserveOut > 0, 'PangolinLibrary: INSUFFICIENT_LIQUIDITY');\r\n        uint numerator = reserveIn.mul(amountOut).mul(1000);\r\n        uint denominator = reserveOut.sub(amountOut).mul(997);\r\n        amountIn = (numerator / denominator).add(1);\r\n    }\r\n\r\n    // performs chained getAmountOut calculations on any number of pairs\r\n    function getAmountsOut(address factory, uint amountIn, address[] memory path) internal view returns (uint[] memory amounts) {\r\n        require(path.length >= 2, 'PangolinLibrary: INVALID_PATH');\r\n        amounts = new uint[](path.length);\r\n        amounts[0] = amountIn;\r\n        for (uint i; i < path.length - 1; i++) {\r\n            (uint reserveIn, uint reserveOut) = getReserves(factory, path[i], path[i + 1]);\r\n            amounts[i + 1] = getAmountOut(amounts[i], reserveIn, reserveOut);\r\n        }\r\n    }\r\n\r\n    // performs chained getAmountIn calculations on any number of pairs\r\n    function getAmountsIn(address factory, uint amountOut, address[] memory path) internal view returns (uint[] memory amounts) {\r\n        require(path.length >= 2, 'PangolinLibrary: INVALID_PATH');\r\n        amounts = new uint[](path.length);\r\n        amounts[amounts.length - 1] = amountOut;\r\n        for (uint i = path.length - 1; i > 0; i--) {\r\n            (uint reserveIn, uint reserveOut) = getReserves(factory, path[i - 1], path[i]);\r\n            amounts[i - 1] = getAmountIn(amounts[i], reserveIn, reserveOut);\r\n        }\r\n    }\r\n}\r\n"},"contracts/pangolin-periphery/libraries/SafeMath.sol":{"content":"pragma solidity >=0.6.6 <0.8.0;\r\n\r\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\r\n\r\nlibrary SafeMath {\r\n    function add(uint x, uint y) internal pure returns (uint z) {\r\n        require((z = x + y) >= x, 'ds-math-add-overflow');\r\n    }\r\n\r\n    function sub(uint x, uint y) internal pure returns (uint z) {\r\n        require((z = x - y) <= x, 'ds-math-sub-underflow');\r\n    }\r\n\r\n    function mul(uint x, uint y) internal pure returns (uint z) {\r\n        require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');\r\n    }\r\n}\r\n"},"contracts/pangolin-periphery/PangolinRouter.sol":{"content":"pragma solidity =0.6.6;\r\n\r\nimport '../pangolin-core/interfaces/IPangolinFactory.sol';\r\nimport '../pangolin-lib/libraries/TransferHelper.sol';\r\n\r\nimport './interfaces/IPangolinRouter.sol';\r\nimport './libraries/PangolinLibrary.sol';\r\nimport './libraries/SafeMath.sol';\r\nimport './interfaces/IERC20.sol';\r\nimport './interfaces/IWAVAX.sol';\r\n\r\ncontract PangolinRouter is IPangolinRouter {\r\n    using SafeMath for uint;\r\n\r\n    address public immutable override factory;\r\n    address public immutable override WAVAX;\r\n\r\n    modifier ensure(uint deadline) {\r\n        require(deadline >= block.timestamp, 'PangolinRouter: EXPIRED');\r\n        _;\r\n    }\r\n\r\n    constructor(address _factory, address _WAVAX) public {\r\n        factory = _factory;\r\n        WAVAX = _WAVAX;\r\n    }\r\n\r\n    receive() external payable {\r\n        assert(msg.sender == WAVAX); // only accept AVAX via fallback from the WAVAX contract\r\n    }\r\n\r\n    // **** ADD LIQUIDITY ****\r\n    function _addLiquidity(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint amountADesired,\r\n        uint amountBDesired,\r\n        uint amountAMin,\r\n        uint amountBMin\r\n    ) internal virtual returns (uint amountA, uint amountB) {\r\n        // create the pair if it doesn't exist yet\r\n        if (IPangolinFactory(factory).getPair(tokenA, tokenB) == address(0)) {\r\n            IPangolinFactory(factory).createPair(tokenA, tokenB);\r\n        }\r\n        (uint reserveA, uint reserveB) = PangolinLibrary.getReserves(factory, tokenA, tokenB);\r\n        if (reserveA == 0 && reserveB == 0) {\r\n            (amountA, amountB) = (amountADesired, amountBDesired);\r\n        } else {\r\n            uint amountBOptimal = PangolinLibrary.quote(amountADesired, reserveA, reserveB);\r\n            if (amountBOptimal <= amountBDesired) {\r\n                require(amountBOptimal >= amountBMin, 'PangolinRouter: INSUFFICIENT_B_AMOUNT');\r\n                (amountA, amountB) = (amountADesired, amountBOptimal);\r\n            } else {\r\n                uint amountAOptimal = PangolinLibrary.quote(amountBDesired, reserveB, reserveA);\r\n                assert(amountAOptimal <= amountADesired);\r\n                require(amountAOptimal >= amountAMin, 'PangolinRouter: INSUFFICIENT_A_AMOUNT');\r\n                (amountA, amountB) = (amountAOptimal, amountBDesired);\r\n            }\r\n        }\r\n    }\r\n    function addLiquidity(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint amountADesired,\r\n        uint amountBDesired,\r\n        uint amountAMin,\r\n        uint amountBMin,\r\n        address to,\r\n        uint deadline\r\n    ) external virtual override ensure(deadline) returns (uint amountA, uint amountB, uint liquidity) {\r\n        (amountA, amountB) = _addLiquidity(tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin);\r\n        address pair = PangolinLibrary.pairFor(factory, tokenA, tokenB);\r\n        TransferHelper.safeTransferFrom(tokenA, msg.sender, pair, amountA);\r\n        TransferHelper.safeTransferFrom(tokenB, msg.sender, pair, amountB);\r\n        liquidity = IPangolinPair(pair).mint(to);\r\n    }\r\n    function addLiquidityAVAX(\r\n        address token,\r\n        uint amountTokenDesired,\r\n        uint amountTokenMin,\r\n        uint amountAVAXMin,\r\n        address to,\r\n        uint deadline\r\n    ) external virtual override payable ensure(deadline) returns (uint amountToken, uint amountAVAX, uint liquidity) {\r\n        (amountToken, amountAVAX) = _addLiquidity(\r\n            token,\r\n            WAVAX,\r\n            amountTokenDesired,\r\n            msg.value,\r\n            amountTokenMin,\r\n            amountAVAXMin\r\n        );\r\n        address pair = PangolinLibrary.pairFor(factory, token, WAVAX);\r\n        TransferHelper.safeTransferFrom(token, msg.sender, pair, amountToken);\r\n        IWAVAX(WAVAX).deposit{value: amountAVAX}();\r\n        assert(IWAVAX(WAVAX).transfer(pair, amountAVAX));\r\n        liquidity = IPangolinPair(pair).mint(to);\r\n        // refund dust AVAX, if any\r\n        if (msg.value > amountAVAX) TransferHelper.safeTransferAVAX(msg.sender, msg.value - amountAVAX);\r\n    }\r\n\r\n    // **** REMOVE LIQUIDITY ****\r\n    function removeLiquidity(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint liquidity,\r\n        uint amountAMin,\r\n        uint amountBMin,\r\n        address to,\r\n        uint deadline\r\n    ) public virtual override ensure(deadline) returns (uint amountA, uint amountB) {\r\n        address pair = PangolinLibrary.pairFor(factory, tokenA, tokenB);\r\n        IPangolinPair(pair).transferFrom(msg.sender, pair, liquidity); // send liquidity to pair\r\n        (uint amount0, uint amount1) = IPangolinPair(pair).burn(to);\r\n        (address token0,) = PangolinLibrary.sortTokens(tokenA, tokenB);\r\n        (amountA, amountB) = tokenA == token0 ? (amount0, amount1) : (amount1, amount0);\r\n        require(amountA >= amountAMin, 'PangolinRouter: INSUFFICIENT_A_AMOUNT');\r\n        require(amountB >= amountBMin, 'PangolinRouter: INSUFFICIENT_B_AMOUNT');\r\n    }\r\n    function removeLiquidityAVAX(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountAVAXMin,\r\n        address to,\r\n        uint deadline\r\n    ) public virtual override ensure(deadline) returns (uint amountToken, uint amountAVAX) {\r\n        (amountToken, amountAVAX) = removeLiquidity(\r\n            token,\r\n            WAVAX,\r\n            liquidity,\r\n            amountTokenMin,\r\n            amountAVAXMin,\r\n            address(this),\r\n            deadline\r\n        );\r\n        TransferHelper.safeTransfer(token, to, amountToken);\r\n        IWAVAX(WAVAX).withdraw(amountAVAX);\r\n        TransferHelper.safeTransferAVAX(to, amountAVAX);\r\n    }\r\n    function removeLiquidityWithPermit(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint liquidity,\r\n        uint amountAMin,\r\n        uint amountBMin,\r\n        address to,\r\n        uint deadline,\r\n        bool approveMax, uint8 v, bytes32 r, bytes32 s\r\n    ) external virtual override returns (uint amountA, uint amountB) {\r\n        address pair = PangolinLibrary.pairFor(factory, tokenA, tokenB);\r\n        uint value = approveMax ? uint(-1) : liquidity;\r\n        IPangolinPair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);\r\n        (amountA, amountB) = removeLiquidity(tokenA, tokenB, liquidity, amountAMin, amountBMin, to, deadline);\r\n    }\r\n    function removeLiquidityAVAXWithPermit(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountAVAXMin,\r\n        address to,\r\n        uint deadline,\r\n        bool approveMax, uint8 v, bytes32 r, bytes32 s\r\n    ) external virtual override returns (uint amountToken, uint amountAVAX) {\r\n        address pair = PangolinLibrary.pairFor(factory, token, WAVAX);\r\n        uint value = approveMax ? uint(-1) : liquidity;\r\n        IPangolinPair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);\r\n        (amountToken, amountAVAX) = removeLiquidityAVAX(token, liquidity, amountTokenMin, amountAVAXMin, to, deadline);\r\n    }\r\n\r\n    // **** REMOVE LIQUIDITY (supporting fee-on-transfer tokens) ****\r\n    function removeLiquidityAVAXSupportingFeeOnTransferTokens(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountAVAXMin,\r\n        address to,\r\n        uint deadline\r\n    ) public virtual override ensure(deadline) returns (uint amountAVAX) {\r\n        (, amountAVAX) = removeLiquidity(\r\n            token,\r\n            WAVAX,\r\n            liquidity,\r\n            amountTokenMin,\r\n            amountAVAXMin,\r\n            address(this),\r\n            deadline\r\n        );\r\n        TransferHelper.safeTransfer(token, to, IERC20(token).balanceOf(address(this)));\r\n        IWAVAX(WAVAX).withdraw(amountAVAX);\r\n        TransferHelper.safeTransferAVAX(to, amountAVAX);\r\n    }\r\n    function removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountAVAXMin,\r\n        address to,\r\n        uint deadline,\r\n        bool approveMax, uint8 v, bytes32 r, bytes32 s\r\n    ) external virtual override returns (uint amountAVAX) {\r\n        address pair = PangolinLibrary.pairFor(factory, token, WAVAX);\r\n        uint value = approveMax ? uint(-1) : liquidity;\r\n        IPangolinPair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);\r\n        amountAVAX = removeLiquidityAVAXSupportingFeeOnTransferTokens(\r\n            token, liquidity, amountTokenMin, amountAVAXMin, to, deadline\r\n        );\r\n    }\r\n\r\n    // **** SWAP ****\r\n    // requires the initial amount to have already been sent to the first pair\r\n    function _swap(uint[] memory amounts, address[] memory path, address _to) internal virtual {\r\n        for (uint i; i < path.length - 1; i++) {\r\n            (address input, address output) = (path[i], path[i + 1]);\r\n            (address token0,) = PangolinLibrary.sortTokens(input, output);\r\n            uint amountOut = amounts[i + 1];\r\n            (uint amount0Out, uint amount1Out) = input == token0 ? (uint(0), amountOut) : (amountOut, uint(0));\r\n            address to = i < path.length - 2 ? PangolinLibrary.pairFor(factory, output, path[i + 2]) : _to;\r\n            IPangolinPair(PangolinLibrary.pairFor(factory, input, output)).swap(\r\n                amount0Out, amount1Out, to, new bytes(0)\r\n            );\r\n        }\r\n    }\r\n    function swapExactTokensForTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external virtual override ensure(deadline) returns (uint[] memory amounts) {\r\n        amounts = PangolinLibrary.getAmountsOut(factory, amountIn, path);\r\n        require(amounts[amounts.length - 1] >= amountOutMin, 'PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT');\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary.pairFor(factory, path[0], path[1]), amounts[0]\r\n        );\r\n        _swap(amounts, path, to);\r\n    }\r\n    function swapTokensForExactTokens(\r\n        uint amountOut,\r\n        uint amountInMax,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external virtual override ensure(deadline) returns (uint[] memory amounts) {\r\n        amounts = PangolinLibrary.getAmountsIn(factory, amountOut, path);\r\n        require(amounts[0] <= amountInMax, 'PangolinRouter: EXCESSIVE_INPUT_AMOUNT');\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary.pairFor(factory, path[0], path[1]), amounts[0]\r\n        );\r\n        _swap(amounts, path, to);\r\n    }\r\n    function swapExactAVAXForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)\r\n        external\r\n        virtual\r\n        override\r\n        payable\r\n        ensure(deadline)\r\n        returns (uint[] memory amounts)\r\n    {\r\n        require(path[0] == WAVAX, 'PangolinRouter: INVALID_PATH');\r\n        amounts = PangolinLibrary.getAmountsOut(factory, msg.value, path);\r\n        require(amounts[amounts.length - 1] >= amountOutMin, 'PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT');\r\n        IWAVAX(WAVAX).deposit{value: amounts[0]}();\r\n        assert(IWAVAX(WAVAX).transfer(PangolinLibrary.pairFor(factory, path[0], path[1]), amounts[0]));\r\n        _swap(amounts, path, to);\r\n    }\r\n    function swapTokensForExactAVAX(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)\r\n        external\r\n        virtual\r\n        override\r\n        ensure(deadline)\r\n        returns (uint[] memory amounts)\r\n    {\r\n        require(path[path.length - 1] == WAVAX, 'PangolinRouter: INVALID_PATH');\r\n        amounts = PangolinLibrary.getAmountsIn(factory, amountOut, path);\r\n        require(amounts[0] <= amountInMax, 'PangolinRouter: EXCESSIVE_INPUT_AMOUNT');\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary.pairFor(factory, path[0], path[1]), amounts[0]\r\n        );\r\n        _swap(amounts, path, address(this));\r\n        IWAVAX(WAVAX).withdraw(amounts[amounts.length - 1]);\r\n        TransferHelper.safeTransferAVAX(to, amounts[amounts.length - 1]);\r\n    }\r\n    function swapExactTokensForAVAX(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)\r\n        external\r\n        virtual\r\n        override\r\n        ensure(deadline)\r\n        returns (uint[] memory amounts)\r\n    {\r\n        require(path[path.length - 1] == WAVAX, 'PangolinRouter: INVALID_PATH');\r\n        amounts = PangolinLibrary.getAmountsOut(factory, amountIn, path);\r\n        require(amounts[amounts.length - 1] >= amountOutMin, 'PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT');\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary.pairFor(factory, path[0], path[1]), amounts[0]\r\n        );\r\n        _swap(amounts, path, address(this));\r\n        IWAVAX(WAVAX).withdraw(amounts[amounts.length - 1]);\r\n        TransferHelper.safeTransferAVAX(to, amounts[amounts.length - 1]);\r\n    }\r\n    function swapAVAXForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)\r\n        external\r\n        virtual\r\n        override\r\n        payable\r\n        ensure(deadline)\r\n        returns (uint[] memory amounts)\r\n    {\r\n        require(path[0] == WAVAX, 'PangolinRouter: INVALID_PATH');\r\n        amounts = PangolinLibrary.getAmountsIn(factory, amountOut, path);\r\n        require(amounts[0] <= msg.value, 'PangolinRouter: EXCESSIVE_INPUT_AMOUNT');\r\n        IWAVAX(WAVAX).deposit{value: amounts[0]}();\r\n        assert(IWAVAX(WAVAX).transfer(PangolinLibrary.pairFor(factory, path[0], path[1]), amounts[0]));\r\n        _swap(amounts, path, to);\r\n        // refund dust AVAX, if any\r\n        if (msg.value > amounts[0]) TransferHelper.safeTransferAVAX(msg.sender, msg.value - amounts[0]);\r\n    }\r\n\r\n    // **** SWAP (supporting fee-on-transfer tokens) ****\r\n    // requires the initial amount to have already been sent to the first pair\r\n    function _swapSupportingFeeOnTransferTokens(address[] memory path, address _to) internal virtual {\r\n        for (uint i; i < path.length - 1; i++) {\r\n            (address input, address output) = (path[i], path[i + 1]);\r\n            (address token0,) = PangolinLibrary.sortTokens(input, output);\r\n            IPangolinPair pair = IPangolinPair(PangolinLibrary.pairFor(factory, input, output));\r\n            uint amountInput;\r\n            uint amountOutput;\r\n            { // scope to avoid stack too deep errors\r\n            (uint reserve0, uint reserve1,) = pair.getReserves();\r\n            (uint reserveInput, uint reserveOutput) = input == token0 ? (reserve0, reserve1) : (reserve1, reserve0);\r\n            amountInput = IERC20(input).balanceOf(address(pair)).sub(reserveInput);\r\n            amountOutput = PangolinLibrary.getAmountOut(amountInput, reserveInput, reserveOutput);\r\n            }\r\n            (uint amount0Out, uint amount1Out) = input == token0 ? (uint(0), amountOutput) : (amountOutput, uint(0));\r\n            address to = i < path.length - 2 ? PangolinLibrary.pairFor(factory, output, path[i + 2]) : _to;\r\n            pair.swap(amount0Out, amount1Out, to, new bytes(0));\r\n        }\r\n    }\r\n    function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external virtual override ensure(deadline) {\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary.pairFor(factory, path[0], path[1]), amountIn\r\n        );\r\n        uint balanceBefore = IERC20(path[path.length - 1]).balanceOf(to);\r\n        _swapSupportingFeeOnTransferTokens(path, to);\r\n        require(\r\n            IERC20(path[path.length - 1]).balanceOf(to).sub(balanceBefore) >= amountOutMin,\r\n            'PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT'\r\n        );\r\n    }\r\n    function swapExactAVAXForTokensSupportingFeeOnTransferTokens(\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    )\r\n        external\r\n        virtual\r\n        override\r\n        payable\r\n        ensure(deadline)\r\n    {\r\n        require(path[0] == WAVAX, 'PangolinRouter: INVALID_PATH');\r\n        uint amountIn = msg.value;\r\n        IWAVAX(WAVAX).deposit{value: amountIn}();\r\n        assert(IWAVAX(WAVAX).transfer(PangolinLibrary.pairFor(factory, path[0], path[1]), amountIn));\r\n        uint balanceBefore = IERC20(path[path.length - 1]).balanceOf(to);\r\n        _swapSupportingFeeOnTransferTokens(path, to);\r\n        require(\r\n            IERC20(path[path.length - 1]).balanceOf(to).sub(balanceBefore) >= amountOutMin,\r\n            'PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT'\r\n        );\r\n    }\r\n    function swapExactTokensForAVAXSupportingFeeOnTransferTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    )\r\n        external\r\n        virtual\r\n        override\r\n        ensure(deadline)\r\n    {\r\n        require(path[path.length - 1] == WAVAX, 'PangolinRouter: INVALID_PATH');\r\n        TransferHelper.safeTransferFrom(\r\n            path[0], msg.sender, PangolinLibrary.pairFor(factory, path[0], path[1]), amountIn\r\n        );\r\n        _swapSupportingFeeOnTransferTokens(path, address(this));\r\n        uint amountOut = IERC20(WAVAX).balanceOf(address(this));\r\n        require(amountOut >= amountOutMin, 'PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT');\r\n        IWAVAX(WAVAX).withdraw(amountOut);\r\n        TransferHelper.safeTransferAVAX(to, amountOut);\r\n    }\r\n\r\n    // **** LIBRARY FUNCTIONS ****\r\n    function quote(uint amountA, uint reserveA, uint reserveB) public pure virtual override returns (uint amountB) {\r\n        return PangolinLibrary.quote(amountA, reserveA, reserveB);\r\n    }\r\n\r\n    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut)\r\n        public\r\n        pure\r\n        virtual\r\n        override\r\n        returns (uint amountOut)\r\n    {\r\n        return PangolinLibrary.getAmountOut(amountIn, reserveIn, reserveOut);\r\n    }\r\n\r\n    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut)\r\n        public\r\n        pure\r\n        virtual\r\n        override\r\n        returns (uint amountIn)\r\n    {\r\n        return PangolinLibrary.getAmountIn(amountOut, reserveIn, reserveOut);\r\n    }\r\n\r\n    function getAmountsOut(uint amountIn, address[] memory path)\r\n        public\r\n        view\r\n        virtual\r\n        override\r\n        returns (uint[] memory amounts)\r\n    {\r\n        return PangolinLibrary.getAmountsOut(factory, amountIn, path);\r\n    }\r\n\r\n    function getAmountsIn(uint amountOut, address[] memory path)\r\n        public\r\n        view\r\n        virtual\r\n        override\r\n        returns (uint[] memory amounts)\r\n    {\r\n        return PangolinLibrary.getAmountsIn(factory, amountOut, path);\r\n    }\r\n}\r\n"},"contracts/pangolin-periphery/test/DeflatingERC20.sol":{"content":"pragma solidity =0.6.6;\r\n\r\nimport '../libraries/SafeMath.sol';\r\n\r\ncontract DeflatingERC20 {\r\n    using SafeMath for uint;\r\n\r\n    string public constant name = 'Deflating Test Token';\r\n    string public constant symbol = 'DTT';\r\n    uint8 public constant decimals = 18;\r\n    uint  public totalSupply;\r\n    mapping(address => uint) public balanceOf;\r\n    mapping(address => mapping(address => uint)) public allowance;\r\n\r\n    bytes32 public DOMAIN_SEPARATOR;\r\n    // keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\r\n    bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\r\n    mapping(address => uint) public nonces;\r\n\r\n    event Approval(address indexed owner, address indexed spender, uint value);\r\n    event Transfer(address indexed from, address indexed to, uint value);\r\n\r\n    constructor(uint _totalSupply) public {\r\n        uint chainId;\r\n        assembly {\r\n            chainId := chainid()\r\n        }\r\n        DOMAIN_SEPARATOR = keccak256(\r\n            abi.encode(\r\n                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),\r\n                keccak256(bytes(name)),\r\n                keccak256(bytes('1')),\r\n                chainId,\r\n                address(this)\r\n            )\r\n        );\r\n        _mint(msg.sender, _totalSupply);\r\n    }\r\n\r\n    function _mint(address to, uint value) internal {\r\n        totalSupply = totalSupply.add(value);\r\n        balanceOf[to] = balanceOf[to].add(value);\r\n        emit Transfer(address(0), to, value);\r\n    }\r\n\r\n    function _burn(address from, uint value) internal {\r\n        balanceOf[from] = balanceOf[from].sub(value);\r\n        totalSupply = totalSupply.sub(value);\r\n        emit Transfer(from, address(0), value);\r\n    }\r\n\r\n    function _approve(address owner, address spender, uint value) private {\r\n        allowance[owner][spender] = value;\r\n        emit Approval(owner, spender, value);\r\n    }\r\n\r\n    function _transfer(address from, address to, uint value) private {\r\n        uint burnAmount = value / 100;\r\n        _burn(from, burnAmount);\r\n        uint transferAmount = value.sub(burnAmount);\r\n        balanceOf[from] = balanceOf[from].sub(transferAmount);\r\n        balanceOf[to] = balanceOf[to].add(transferAmount);\r\n        emit Transfer(from, to, transferAmount);\r\n    }\r\n\r\n    function approve(address spender, uint value) external returns (bool) {\r\n        _approve(msg.sender, spender, value);\r\n        return true;\r\n    }\r\n\r\n    function transfer(address to, uint value) external returns (bool) {\r\n        _transfer(msg.sender, to, value);\r\n        return true;\r\n    }\r\n\r\n    function transferFrom(address from, address to, uint value) external returns (bool) {\r\n        if (allowance[from][msg.sender] != uint(-1)) {\r\n            allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\r\n        }\r\n        _transfer(from, to, value);\r\n        return true;\r\n    }\r\n\r\n    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {\r\n        require(deadline >= block.timestamp, 'EXPIRED');\r\n        bytes32 digest = keccak256(\r\n            abi.encodePacked(\r\n                '\\x19\\x01',\r\n                DOMAIN_SEPARATOR,\r\n                keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))\r\n            )\r\n        );\r\n        address recoveredAddress = ecrecover(digest, v, r, s);\r\n        require(recoveredAddress != address(0) && recoveredAddress == owner, 'INVALID_SIGNATURE');\r\n        _approve(owner, spender, value);\r\n    }\r\n}\r\n"},"contracts/pangolin-periphery/test/ERC20.sol":{"content":"pragma solidity =0.6.6;\r\n\r\nimport '../libraries/SafeMath.sol';\r\n\r\ncontract ERC20 {\r\n    using SafeMath for uint;\r\n\r\n    string public constant name = 'Test Token';\r\n    string public constant symbol = 'TT';\r\n    uint8 public constant decimals = 18;\r\n    uint  public totalSupply;\r\n    mapping(address => uint) public balanceOf;\r\n    mapping(address => mapping(address => uint)) public allowance;\r\n\r\n    bytes32 public DOMAIN_SEPARATOR;\r\n    // keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\r\n    bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\r\n    mapping(address => uint) public nonces;\r\n\r\n    event Approval(address indexed owner, address indexed spender, uint value);\r\n    event Transfer(address indexed from, address indexed to, uint value);\r\n\r\n    constructor(uint _totalSupply) public {\r\n        uint chainId;\r\n        assembly {\r\n            chainId := chainid()\r\n        }\r\n        DOMAIN_SEPARATOR = keccak256(\r\n            abi.encode(\r\n                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),\r\n                keccak256(bytes(name)),\r\n                keccak256(bytes('1')),\r\n                chainId,\r\n                address(this)\r\n            )\r\n        );\r\n        _mint(msg.sender, _totalSupply);\r\n    }\r\n\r\n    function _mint(address to, uint value) internal {\r\n        totalSupply = totalSupply.add(value);\r\n        balanceOf[to] = balanceOf[to].add(value);\r\n        emit Transfer(address(0), to, value);\r\n    }\r\n\r\n    function _burn(address from, uint value) internal {\r\n        balanceOf[from] = balanceOf[from].sub(value);\r\n        totalSupply = totalSupply.sub(value);\r\n        emit Transfer(from, address(0), value);\r\n    }\r\n\r\n    function _approve(address owner, address spender, uint value) private {\r\n        allowance[owner][spender] = value;\r\n        emit Approval(owner, spender, value);\r\n    }\r\n\r\n    function _transfer(address from, address to, uint value) private {\r\n        balanceOf[from] = balanceOf[from].sub(value);\r\n        balanceOf[to] = balanceOf[to].add(value);\r\n        emit Transfer(from, to, value);\r\n    }\r\n\r\n    function approve(address spender, uint value) external returns (bool) {\r\n        _approve(msg.sender, spender, value);\r\n        return true;\r\n    }\r\n\r\n    function transfer(address to, uint value) external returns (bool) {\r\n        _transfer(msg.sender, to, value);\r\n        return true;\r\n    }\r\n\r\n    function transferFrom(address from, address to, uint value) external returns (bool) {\r\n        if (allowance[from][msg.sender] != uint(-1)) {\r\n            allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\r\n        }\r\n        _transfer(from, to, value);\r\n        return true;\r\n    }\r\n\r\n    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {\r\n        require(deadline >= block.timestamp, 'EXPIRED');\r\n        bytes32 digest = keccak256(\r\n            abi.encodePacked(\r\n                '\\x19\\x01',\r\n                DOMAIN_SEPARATOR,\r\n                keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))\r\n            )\r\n        );\r\n        address recoveredAddress = ecrecover(digest, v, r, s);\r\n        require(recoveredAddress != address(0) && recoveredAddress == owner, 'INVALID_SIGNATURE');\r\n        _approve(owner, spender, value);\r\n    }\r\n}\r\n"},"contracts/pangolin-periphery/test/RouterEventEmitter.sol":{"content":"pragma solidity =0.6.6;\r\n\r\nimport '../interfaces/IPangolinRouter.sol';\r\n\r\ncontract RouterEventEmitter {\r\n    event Amounts(uint[] amounts);\r\n\r\n    receive() external payable {}\r\n\r\n    function swapExactTokensForTokens(\r\n        address router,\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external {\r\n        (bool success, bytes memory returnData) = router.delegatecall(abi.encodeWithSelector(\r\n            IPangolinRouter(router).swapExactTokensForTokens.selector, amountIn, amountOutMin, path, to, deadline\r\n        ));\r\n        assert(success);\r\n        emit Amounts(abi.decode(returnData, (uint[])));\r\n    }\r\n\r\n    function swapTokensForExactTokens(\r\n        address router,\r\n        uint amountOut,\r\n        uint amountInMax,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external {\r\n        (bool success, bytes memory returnData) = router.delegatecall(abi.encodeWithSelector(\r\n            IPangolinRouter(router).swapTokensForExactTokens.selector, amountOut, amountInMax, path, to, deadline\r\n        ));\r\n        assert(success);\r\n        emit Amounts(abi.decode(returnData, (uint[])));\r\n    }\r\n\r\n    function swapExactAVAXForTokens(\r\n        address router,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external payable {\r\n        (bool success, bytes memory returnData) = router.delegatecall(abi.encodeWithSelector(\r\n            IPangolinRouter(router).swapExactAVAXForTokens.selector, amountOutMin, path, to, deadline\r\n        ));\r\n        assert(success);\r\n        emit Amounts(abi.decode(returnData, (uint[])));\r\n    }\r\n\r\n    function swapTokensForExactAVAX(\r\n        address router,\r\n        uint amountOut,\r\n        uint amountInMax,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external {\r\n        (bool success, bytes memory returnData) = router.delegatecall(abi.encodeWithSelector(\r\n            IPangolinRouter(router).swapTokensForExactAVAX.selector, amountOut, amountInMax, path, to, deadline\r\n        ));\r\n        assert(success);\r\n        emit Amounts(abi.decode(returnData, (uint[])));\r\n    }\r\n\r\n    function swapExactTokensForAVAX(\r\n        address router,\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external {\r\n        (bool success, bytes memory returnData) = router.delegatecall(abi.encodeWithSelector(\r\n            IPangolinRouter(router).swapExactTokensForAVAX.selector, amountIn, amountOutMin, path, to, deadline\r\n        ));\r\n        assert(success);\r\n        emit Amounts(abi.decode(returnData, (uint[])));\r\n    }\r\n\r\n    function swapAVAXForExactTokens(\r\n        address router,\r\n        uint amountOut,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external payable {\r\n        (bool success, bytes memory returnData) = router.delegatecall(abi.encodeWithSelector(\r\n            IPangolinRouter(router).swapAVAXForExactTokens.selector, amountOut, path, to, deadline\r\n        ));\r\n        assert(success);\r\n        emit Amounts(abi.decode(returnData, (uint[])));\r\n    }\r\n}\r\n"}},"settings":{"optimizer":{"enabled":true,"runs":1000},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/pangolin-core/interfaces/IPangolinFactory.sol":{"ast":{"absolutePath":"contracts/pangolin-core/interfaces/IPangolinFactory.sol","exportedSymbols":{"IPangolinFactory":[62]},"id":63,"nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:0"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":62,"linearizedBaseContracts":[62],"name":"IPangolinFactory","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":11,"name":"PairCreated","nodeType":"EventDefinition","parameters":{"id":10,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3,"indexed":true,"mutability":"mutable","name":"token0","nodeType":"VariableDeclaration","overrides":null,"scope":11,"src":"80:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2,"name":"address","nodeType":"ElementaryTypeName","src":"80:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5,"indexed":true,"mutability":"mutable","name":"token1","nodeType":"VariableDeclaration","overrides":null,"scope":11,"src":"104:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4,"name":"address","nodeType":"ElementaryTypeName","src":"104:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7,"indexed":false,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":11,"src":"128:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6,"name":"address","nodeType":"ElementaryTypeName","src":"128:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9,"indexed":false,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":11,"src":"142:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8,"name":"uint","nodeType":"ElementaryTypeName","src":"142:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"79:68:0"},"src":"62:86:0"},{"body":null,"documentation":null,"functionSelector":"017e7e58","id":16,"implemented":false,"kind":"function","modifiers":[],"name":"feeTo","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":12,"nodeType":"ParameterList","parameters":[],"src":"170:2:0"},"returnParameters":{"id":15,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":16,"src":"196:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"196:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"195:9:0"},"scope":62,"src":"156:49:0","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"094b7415","id":21,"implemented":false,"kind":"function","modifiers":[],"name":"feeToSetter","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":17,"nodeType":"ParameterList","parameters":[],"src":"231:2:0"},"returnParameters":{"id":20,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":21,"src":"257:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18,"name":"address","nodeType":"ElementaryTypeName","src":"257:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"256:9:0"},"scope":62,"src":"211:55:0","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"e6a43905","id":30,"implemented":false,"kind":"function","modifiers":[],"name":"getPair","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":26,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":30,"src":"291:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":25,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":30,"src":"307:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"307:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"290:32:0"},"returnParameters":{"id":29,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":30,"src":"346:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"345:14:0"},"scope":62,"src":"274:86:0","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"1e3dd18b","id":37,"implemented":false,"kind":"function","modifiers":[],"name":"allPairs","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":33,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":37,"src":"384:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31,"name":"uint","nodeType":"ElementaryTypeName","src":"384:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"383:6:0"},"returnParameters":{"id":36,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":37,"src":"413:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34,"name":"address","nodeType":"ElementaryTypeName","src":"413:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"412:14:0"},"scope":62,"src":"366:61:0","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"574f2ba3","id":42,"implemented":false,"kind":"function","modifiers":[],"name":"allPairsLength","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":38,"nodeType":"ParameterList","parameters":[],"src":"456:2:0"},"returnParameters":{"id":41,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":42,"src":"482:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39,"name":"uint","nodeType":"ElementaryTypeName","src":"482:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"481:6:0"},"scope":62,"src":"433:55:0","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"c9c65396","id":51,"implemented":false,"kind":"function","modifiers":[],"name":"createPair","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":47,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":51,"src":"516:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43,"name":"address","nodeType":"ElementaryTypeName","src":"516:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":46,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":51,"src":"532:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45,"name":"address","nodeType":"ElementaryTypeName","src":"532:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"515:32:0"},"returnParameters":{"id":50,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":51,"src":"566:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48,"name":"address","nodeType":"ElementaryTypeName","src":"566:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"565:14:0"},"scope":62,"src":"496:84:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"f46901ed","id":56,"implemented":false,"kind":"function","modifiers":[],"name":"setFeeTo","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":54,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":56,"src":"606:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52,"name":"address","nodeType":"ElementaryTypeName","src":"606:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"605:9:0"},"returnParameters":{"id":55,"nodeType":"ParameterList","parameters":[],"src":"623:0:0"},"scope":62,"src":"588:36:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"a2e74af6","id":61,"implemented":false,"kind":"function","modifiers":[],"name":"setFeeToSetter","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":59,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":61,"src":"654:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"653:9:0"},"returnParameters":{"id":60,"nodeType":"ParameterList","parameters":[],"src":"671:0:0"},"scope":62,"src":"630:42:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":63,"src":"28:647:0"}],"src":"0:677:0"},"id":0},"contracts/pangolin-core/interfaces/IPangolinPair.sol":{"ast":{"absolutePath":"contracts/pangolin-core/interfaces/IPangolinPair.sol","exportedSymbols":{"IPangolinPair":[304]},"id":305,"nodeType":"SourceUnit","nodes":[{"id":64,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:1"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":304,"linearizedBaseContracts":[304],"name":"IPangolinPair","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":72,"name":"Approval","nodeType":"EventDefinition","parameters":{"id":71,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66,"indexed":true,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":72,"src":"74:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65,"name":"address","nodeType":"ElementaryTypeName","src":"74:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":68,"indexed":true,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":72,"src":"97:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67,"name":"address","nodeType":"ElementaryTypeName","src":"97:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":70,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":72,"src":"122:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69,"name":"uint","nodeType":"ElementaryTypeName","src":"122:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"73:60:1"},"src":"59:75:1"},{"anonymous":false,"documentation":null,"id":80,"name":"Transfer","nodeType":"EventDefinition","parameters":{"id":79,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"indexed":true,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":80,"src":"155:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"155:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":76,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":80,"src":"177:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75,"name":"address","nodeType":"ElementaryTypeName","src":"177:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":78,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":80,"src":"197:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77,"name":"uint","nodeType":"ElementaryTypeName","src":"197:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"154:54:1"},"src":"140:69:1"},{"body":null,"documentation":null,"functionSelector":"06fdde03","id":85,"implemented":false,"kind":"function","modifiers":[],"name":"name","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":81,"nodeType":"ParameterList","parameters":[],"src":"230:2:1"},"returnParameters":{"id":84,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":85,"src":"256:13:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82,"name":"string","nodeType":"ElementaryTypeName","src":"256:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"255:15:1"},"scope":304,"src":"217:54:1","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"95d89b41","id":90,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":86,"nodeType":"ParameterList","parameters":[],"src":"292:2:1"},"returnParameters":{"id":89,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":90,"src":"318:13:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":87,"name":"string","nodeType":"ElementaryTypeName","src":"318:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"317:15:1"},"scope":304,"src":"277:56:1","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"313ce567","id":95,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":91,"nodeType":"ParameterList","parameters":[],"src":"356:2:1"},"returnParameters":{"id":94,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":95,"src":"382:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":92,"name":"uint8","nodeType":"ElementaryTypeName","src":"382:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"381:7:1"},"scope":304,"src":"339:50:1","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"18160ddd","id":100,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":96,"nodeType":"ParameterList","parameters":[],"src":"415:2:1"},"returnParameters":{"id":99,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":100,"src":"441:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97,"name":"uint","nodeType":"ElementaryTypeName","src":"441:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"440:6:1"},"scope":304,"src":"395:52:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"70a08231","id":107,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":107,"src":"472:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":101,"name":"address","nodeType":"ElementaryTypeName","src":"472:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"471:15:1"},"returnParameters":{"id":106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":107,"src":"510:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":104,"name":"uint","nodeType":"ElementaryTypeName","src":"510:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"509:6:1"},"scope":304,"src":"453:63:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"dd62ed3e","id":116,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":116,"src":"541:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":108,"name":"address","nodeType":"ElementaryTypeName","src":"541:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":111,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":116,"src":"556:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110,"name":"address","nodeType":"ElementaryTypeName","src":"556:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"540:32:1"},"returnParameters":{"id":115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":114,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":116,"src":"596:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":113,"name":"uint","nodeType":"ElementaryTypeName","src":"596:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"595:6:1"},"scope":304,"src":"522:80:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"095ea7b3","id":125,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":125,"src":"627:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":117,"name":"address","nodeType":"ElementaryTypeName","src":"627:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":120,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":125,"src":"644:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":119,"name":"uint","nodeType":"ElementaryTypeName","src":"644:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"626:29:1"},"returnParameters":{"id":124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":123,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":125,"src":"674:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":122,"name":"bool","nodeType":"ElementaryTypeName","src":"674:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"673:6:1"},"scope":304,"src":"610:70:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"a9059cbb","id":134,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":127,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":134,"src":"704:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":126,"name":"address","nodeType":"ElementaryTypeName","src":"704:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":129,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":134,"src":"716:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":128,"name":"uint","nodeType":"ElementaryTypeName","src":"716:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"703:24:1"},"returnParameters":{"id":133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":132,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":134,"src":"746:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":131,"name":"bool","nodeType":"ElementaryTypeName","src":"746:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"745:6:1"},"scope":304,"src":"686:66:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"23b872dd","id":145,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":136,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":145,"src":"780:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":135,"name":"address","nodeType":"ElementaryTypeName","src":"780:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":138,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":145,"src":"794:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":137,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":140,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":145,"src":"806:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":139,"name":"uint","nodeType":"ElementaryTypeName","src":"806:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"779:38:1"},"returnParameters":{"id":144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":143,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":145,"src":"836:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":142,"name":"bool","nodeType":"ElementaryTypeName","src":"836:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"835:6:1"},"scope":304,"src":"758:84:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"3644e515","id":150,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":146,"nodeType":"ParameterList","parameters":[],"src":"875:2:1"},"returnParameters":{"id":149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":148,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":150,"src":"901:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"901:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"900:9:1"},"scope":304,"src":"850:60:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"30adf81f","id":155,"implemented":false,"kind":"function","modifiers":[],"name":"PERMIT_TYPEHASH","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":151,"nodeType":"ParameterList","parameters":[],"src":"940:2:1"},"returnParameters":{"id":154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":153,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":155,"src":"966:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"966:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"965:9:1"},"scope":304,"src":"916:59:1","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"7ecebe00","id":162,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":157,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":162,"src":"997:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":156,"name":"address","nodeType":"ElementaryTypeName","src":"997:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"996:15:1"},"returnParameters":{"id":161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":160,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":162,"src":"1035:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":159,"name":"uint","nodeType":"ElementaryTypeName","src":"1035:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1034:6:1"},"scope":304,"src":"981:60:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"d505accf","id":179,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":164,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":179,"src":"1065:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163,"name":"address","nodeType":"ElementaryTypeName","src":"1065:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":166,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":179,"src":"1080:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":165,"name":"address","nodeType":"ElementaryTypeName","src":"1080:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":168,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":179,"src":"1097:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":167,"name":"uint","nodeType":"ElementaryTypeName","src":"1097:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":170,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":179,"src":"1109:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":169,"name":"uint","nodeType":"ElementaryTypeName","src":"1109:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":172,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":179,"src":"1124:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":171,"name":"uint8","nodeType":"ElementaryTypeName","src":"1124:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":174,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":179,"src":"1133:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1133:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":176,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":179,"src":"1144:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":175,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1144:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1064:90:1"},"returnParameters":{"id":178,"nodeType":"ParameterList","parameters":[],"src":"1163:0:1"},"scope":304,"src":"1049:115:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"documentation":null,"id":187,"name":"Mint","nodeType":"EventDefinition","parameters":{"id":186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":181,"indexed":true,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","overrides":null,"scope":187,"src":"1183:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":180,"name":"address","nodeType":"ElementaryTypeName","src":"1183:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":183,"indexed":false,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","overrides":null,"scope":187,"src":"1207:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":182,"name":"uint","nodeType":"ElementaryTypeName","src":"1207:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":185,"indexed":false,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","overrides":null,"scope":187,"src":"1221:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":184,"name":"uint","nodeType":"ElementaryTypeName","src":"1221:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1182:52:1"},"src":"1172:63:1"},{"anonymous":false,"documentation":null,"id":197,"name":"Burn","nodeType":"EventDefinition","parameters":{"id":196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":189,"indexed":true,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","overrides":null,"scope":197,"src":"1252:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":188,"name":"address","nodeType":"ElementaryTypeName","src":"1252:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":191,"indexed":false,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","overrides":null,"scope":197,"src":"1276:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":190,"name":"uint","nodeType":"ElementaryTypeName","src":"1276:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":193,"indexed":false,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","overrides":null,"scope":197,"src":"1290:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":192,"name":"uint","nodeType":"ElementaryTypeName","src":"1290:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":195,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":197,"src":"1304:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":194,"name":"address","nodeType":"ElementaryTypeName","src":"1304:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1251:72:1"},"src":"1241:83:1"},{"anonymous":false,"documentation":null,"id":211,"name":"Swap","nodeType":"EventDefinition","parameters":{"id":210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":199,"indexed":true,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","overrides":null,"scope":211,"src":"1351:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":198,"name":"address","nodeType":"ElementaryTypeName","src":"1351:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":201,"indexed":false,"mutability":"mutable","name":"amount0In","nodeType":"VariableDeclaration","overrides":null,"scope":211,"src":"1384:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":200,"name":"uint","nodeType":"ElementaryTypeName","src":"1384:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":203,"indexed":false,"mutability":"mutable","name":"amount1In","nodeType":"VariableDeclaration","overrides":null,"scope":211,"src":"1409:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":202,"name":"uint","nodeType":"ElementaryTypeName","src":"1409:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":205,"indexed":false,"mutability":"mutable","name":"amount0Out","nodeType":"VariableDeclaration","overrides":null,"scope":211,"src":"1434:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":204,"name":"uint","nodeType":"ElementaryTypeName","src":"1434:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":207,"indexed":false,"mutability":"mutable","name":"amount1Out","nodeType":"VariableDeclaration","overrides":null,"scope":211,"src":"1460:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206,"name":"uint","nodeType":"ElementaryTypeName","src":"1460:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":209,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":211,"src":"1486:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":208,"name":"address","nodeType":"ElementaryTypeName","src":"1486:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1340:171:1"},"src":"1330:182:1"},{"anonymous":false,"documentation":null,"id":217,"name":"Sync","nodeType":"EventDefinition","parameters":{"id":216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":213,"indexed":false,"mutability":"mutable","name":"reserve0","nodeType":"VariableDeclaration","overrides":null,"scope":217,"src":"1529:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":212,"name":"uint112","nodeType":"ElementaryTypeName","src":"1529:7:1","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"value":null,"visibility":"internal"},{"constant":false,"id":215,"indexed":false,"mutability":"mutable","name":"reserve1","nodeType":"VariableDeclaration","overrides":null,"scope":217,"src":"1547:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":214,"name":"uint112","nodeType":"ElementaryTypeName","src":"1547:7:1","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"value":null,"visibility":"internal"}],"src":"1528:36:1"},"src":"1518:47:1"},{"body":null,"documentation":null,"functionSelector":"ba9a7a56","id":222,"implemented":false,"kind":"function","modifiers":[],"name":"MINIMUM_LIQUIDITY","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":218,"nodeType":"ParameterList","parameters":[],"src":"1599:2:1"},"returnParameters":{"id":221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":222,"src":"1625:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":219,"name":"uint","nodeType":"ElementaryTypeName","src":"1625:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1624:6:1"},"scope":304,"src":"1573:58:1","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"c45a0155","id":227,"implemented":false,"kind":"function","modifiers":[],"name":"factory","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":223,"nodeType":"ParameterList","parameters":[],"src":"1653:2:1"},"returnParameters":{"id":226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":225,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":227,"src":"1679:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":224,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1678:9:1"},"scope":304,"src":"1637:51:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"0dfe1681","id":232,"implemented":false,"kind":"function","modifiers":[],"name":"token0","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":228,"nodeType":"ParameterList","parameters":[],"src":"1709:2:1"},"returnParameters":{"id":231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":230,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":232,"src":"1735:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":229,"name":"address","nodeType":"ElementaryTypeName","src":"1735:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1734:9:1"},"scope":304,"src":"1694:50:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"d21220a7","id":237,"implemented":false,"kind":"function","modifiers":[],"name":"token1","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":233,"nodeType":"ParameterList","parameters":[],"src":"1765:2:1"},"returnParameters":{"id":236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":235,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":237,"src":"1791:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":234,"name":"address","nodeType":"ElementaryTypeName","src":"1791:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1790:9:1"},"scope":304,"src":"1750:50:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"0902f1ac","id":246,"implemented":false,"kind":"function","modifiers":[],"name":"getReserves","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":238,"nodeType":"ParameterList","parameters":[],"src":"1826:2:1"},"returnParameters":{"id":245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":240,"mutability":"mutable","name":"reserve0","nodeType":"VariableDeclaration","overrides":null,"scope":246,"src":"1852:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":239,"name":"uint112","nodeType":"ElementaryTypeName","src":"1852:7:1","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"value":null,"visibility":"internal"},{"constant":false,"id":242,"mutability":"mutable","name":"reserve1","nodeType":"VariableDeclaration","overrides":null,"scope":246,"src":"1870:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":241,"name":"uint112","nodeType":"ElementaryTypeName","src":"1870:7:1","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"value":null,"visibility":"internal"},{"constant":false,"id":244,"mutability":"mutable","name":"blockTimestampLast","nodeType":"VariableDeclaration","overrides":null,"scope":246,"src":"1888:25:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":243,"name":"uint32","nodeType":"ElementaryTypeName","src":"1888:6:1","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"value":null,"visibility":"internal"}],"src":"1851:63:1"},"scope":304,"src":"1806:109:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"5909c0d5","id":251,"implemented":false,"kind":"function","modifiers":[],"name":"price0CumulativeLast","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":247,"nodeType":"ParameterList","parameters":[],"src":"1950:2:1"},"returnParameters":{"id":250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":249,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":251,"src":"1976:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":248,"name":"uint","nodeType":"ElementaryTypeName","src":"1976:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1975:6:1"},"scope":304,"src":"1921:61:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"5a3d5493","id":256,"implemented":false,"kind":"function","modifiers":[],"name":"price1CumulativeLast","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":252,"nodeType":"ParameterList","parameters":[],"src":"2017:2:1"},"returnParameters":{"id":255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":254,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":256,"src":"2043:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":253,"name":"uint","nodeType":"ElementaryTypeName","src":"2043:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2042:6:1"},"scope":304,"src":"1988:61:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"7464fc3d","id":261,"implemented":false,"kind":"function","modifiers":[],"name":"kLast","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":257,"nodeType":"ParameterList","parameters":[],"src":"2069:2:1"},"returnParameters":{"id":260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":259,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":261,"src":"2095:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":258,"name":"uint","nodeType":"ElementaryTypeName","src":"2095:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2094:6:1"},"scope":304,"src":"2055:46:1","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"6a627842","id":268,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":263,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":268,"src":"2123:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":262,"name":"address","nodeType":"ElementaryTypeName","src":"2123:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2122:12:1"},"returnParameters":{"id":267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":266,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":268,"src":"2153:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":265,"name":"uint","nodeType":"ElementaryTypeName","src":"2153:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2152:16:1"},"scope":304,"src":"2109:60:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"89afcb44","id":277,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":270,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":277,"src":"2189:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":269,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2188:12:1"},"returnParameters":{"id":276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":273,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","overrides":null,"scope":277,"src":"2219:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":272,"name":"uint","nodeType":"ElementaryTypeName","src":"2219:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":275,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","overrides":null,"scope":277,"src":"2233:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":274,"name":"uint","nodeType":"ElementaryTypeName","src":"2233:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2218:28:1"},"scope":304,"src":"2175:72:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"022c0d9f","id":288,"implemented":false,"kind":"function","modifiers":[],"name":"swap","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":279,"mutability":"mutable","name":"amount0Out","nodeType":"VariableDeclaration","overrides":null,"scope":288,"src":"2267:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":278,"name":"uint","nodeType":"ElementaryTypeName","src":"2267:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":281,"mutability":"mutable","name":"amount1Out","nodeType":"VariableDeclaration","overrides":null,"scope":288,"src":"2284:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":280,"name":"uint","nodeType":"ElementaryTypeName","src":"2284:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":283,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":288,"src":"2301:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":282,"name":"address","nodeType":"ElementaryTypeName","src":"2301:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":285,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":288,"src":"2313:19:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":284,"name":"bytes","nodeType":"ElementaryTypeName","src":"2313:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2266:67:1"},"returnParameters":{"id":287,"nodeType":"ParameterList","parameters":[],"src":"2342:0:1"},"scope":304,"src":"2253:90:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"bc25cf77","id":293,"implemented":false,"kind":"function","modifiers":[],"name":"skim","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":290,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":293,"src":"2363:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":289,"name":"address","nodeType":"ElementaryTypeName","src":"2363:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2362:12:1"},"returnParameters":{"id":292,"nodeType":"ParameterList","parameters":[],"src":"2383:0:1"},"scope":304,"src":"2349:35:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"fff6cae9","id":296,"implemented":false,"kind":"function","modifiers":[],"name":"sync","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":294,"nodeType":"ParameterList","parameters":[],"src":"2403:2:1"},"returnParameters":{"id":295,"nodeType":"ParameterList","parameters":[],"src":"2414:0:1"},"scope":304,"src":"2390:25:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"485cc955","id":303,"implemented":false,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":298,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":303,"src":"2443:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":297,"name":"address","nodeType":"ElementaryTypeName","src":"2443:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":300,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":303,"src":"2452:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":299,"name":"address","nodeType":"ElementaryTypeName","src":"2452:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2442:18:1"},"returnParameters":{"id":302,"nodeType":"ParameterList","parameters":[],"src":"2469:0:1"},"scope":304,"src":"2423:47:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":305,"src":"28:2445:1"}],"src":"0:2475:1"},"id":1},"contracts/pangolin-lib/libraries/TransferHelper.sol":{"ast":{"absolutePath":"contracts/pangolin-lib/libraries/TransferHelper.sol","exportedSymbols":{"TransferHelper":[464]},"id":465,"nodeType":"SourceUnit","nodes":[{"id":306,"literals":["solidity",">=","0.6",".0"],"nodeType":"PragmaDirective","src":"48:24:2"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":null,"fullyImplemented":true,"id":464,"linearizedBaseContracts":[464],"name":"TransferHelper","nodeType":"ContractDefinition","nodes":[{"body":{"id":348,"nodeType":"Block","src":"325:289:2","statements":[{"assignments":[316,318],"declarations":[{"constant":false,"id":316,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":348,"src":"403:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":315,"name":"bool","nodeType":"ElementaryTypeName","src":"403:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":318,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":348,"src":"417:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":317,"name":"bytes","nodeType":"ElementaryTypeName","src":"417:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":328,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783039356561376233","id":323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"472:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_157198259_by_1","typeString":"int_const 157198259"},"value":"0x095ea7b3"},{"argumentTypes":null,"id":324,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"484:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":325,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":312,"src":"488:5:2","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":{"argumentTypes":null,"id":321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"449:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"449:22:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"449:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":319,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":308,"src":"438:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"438:10:2","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":327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"438:57:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"402:93:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":330,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"514:7:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":331,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"526:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"526:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"541:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"526:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":337,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"557:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"id":339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"564:4:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":338,"name":"bool","nodeType":"ElementaryTypeName","src":"564:4:2","typeDescriptions":{"typeIdentifier":null,"typeString":null}}}],"id":340,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"563:6:2","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":{"argumentTypes":null,"id":335,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"546:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"546:10:2","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"546:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"526:44:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":343,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"525:46:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"514:57:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5472616e7366657248656c7065723a20415050524f56455f4641494c4544","id":345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"573:32:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3e27be550bb5367a6d8a8b2dd8b5c52ee0710d2d5b26de50062207957ab5bd00","typeString":"literal_string \"TransferHelper: APPROVE_FAILED\""},"value":"TransferHelper: APPROVE_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3e27be550bb5367a6d8a8b2dd8b5c52ee0710d2d5b26de50062207957ab5bd00","typeString":"literal_string \"TransferHelper: APPROVE_FAILED\""}],"id":329,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"506:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"506:100:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":347,"nodeType":"ExpressionStatement","src":"506:100:2"}]},"documentation":null,"id":349,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":308,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":349,"src":"250:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":307,"name":"address","nodeType":"ElementaryTypeName","src":"250:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":310,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":349,"src":"274:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":309,"name":"address","nodeType":"ElementaryTypeName","src":"274:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":312,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":349,"src":"295:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":311,"name":"uint256","nodeType":"ElementaryTypeName","src":"295:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"239:76:2"},"returnParameters":{"id":314,"nodeType":"ParameterList","parameters":[],"src":"325:0:2"},"scope":464,"src":"219:395:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":391,"nodeType":"Block","src":"729:291:2","statements":[{"assignments":[359,361],"declarations":[{"constant":false,"id":359,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":391,"src":"808:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":358,"name":"bool","nodeType":"ElementaryTypeName","src":"808:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":361,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":391,"src":"822:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":360,"name":"bytes","nodeType":"ElementaryTypeName","src":"822:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":371,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30786139303539636262","id":366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2835717307_by_1","typeString":"int_const 2835717307"},"value":"0xa9059cbb"},{"argumentTypes":null,"id":367,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":353,"src":"889:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":368,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":355,"src":"893:5:2","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":{"argumentTypes":null,"id":364,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"854:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"854:22:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"854:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":362,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"843:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"843:10:2","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":370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"843:57:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"807:93:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":373,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":359,"src":"919:7:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":374,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"931:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"931:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"946:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"931:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":380,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"962:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"id":382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"969:4:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":381,"name":"bool","nodeType":"ElementaryTypeName","src":"969:4:2","typeDescriptions":{"typeIdentifier":null,"typeString":null}}}],"id":383,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"968:6:2","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":{"argumentTypes":null,"id":378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"951:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"951:10:2","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"951:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"931:44:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":386,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:46:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"919:57:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5472616e7366657248656c7065723a205452414e534645525f4641494c4544","id":388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"978:33:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_05d7eee434319ef96b9de8eaf182057f1e6a6441451c0ddc676469e4b256f426","typeString":"literal_string \"TransferHelper: TRANSFER_FAILED\""},"value":"TransferHelper: TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_05d7eee434319ef96b9de8eaf182057f1e6a6441451c0ddc676469e4b256f426","typeString":"literal_string \"TransferHelper: TRANSFER_FAILED\""}],"id":372,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"911:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"911:101:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":390,"nodeType":"ExpressionStatement","src":"911:101:2"}]},"documentation":null,"id":392,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":351,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":392,"src":"654:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":350,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":353,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":392,"src":"678:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":352,"name":"address","nodeType":"ElementaryTypeName","src":"678:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":355,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":392,"src":"699:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":354,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"643:76:2"},"returnParameters":{"id":357,"nodeType":"ParameterList","parameters":[],"src":"729:0:2"},"scope":464,"src":"622:398:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":437,"nodeType":"Block","src":"1162:314:2","statements":[{"assignments":[404,406],"declarations":[{"constant":false,"id":404,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":437,"src":"1253:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":403,"name":"bool","nodeType":"ElementaryTypeName","src":"1253:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":406,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":437,"src":"1267:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":405,"name":"bytes","nodeType":"ElementaryTypeName","src":"1267:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":417,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783233623837326464","id":411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1322:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_599290589_by_1","typeString":"int_const 599290589"},"value":"0x23b872dd"},{"argumentTypes":null,"id":412,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":396,"src":"1334:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":413,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":398,"src":"1340:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":414,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":400,"src":"1344:5:2","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":{"argumentTypes":null,"id":409,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1299:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1299:22:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1299:51:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":407,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"1288:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1288:10:2","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":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1288:63:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1252:99:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":419,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"1370:7:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":420,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"1382:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1382:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1397:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1382:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":426,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"1413:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"id":428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1420:4:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":427,"name":"bool","nodeType":"ElementaryTypeName","src":"1420:4:2","typeDescriptions":{"typeIdentifier":null,"typeString":null}}}],"id":429,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1419:6:2","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":{"argumentTypes":null,"id":424,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1402:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1402:10:2","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1402:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1382:44:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":432,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1381:46:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1370:57:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544","id":434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1429:38:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_eb2904bf3c0c9ae693b53eb0188a703c388998a9c405b7965ca678cef9a51d18","typeString":"literal_string \"TransferHelper: TRANSFER_FROM_FAILED\""},"value":"TransferHelper: TRANSFER_FROM_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb2904bf3c0c9ae693b53eb0188a703c388998a9c405b7965ca678cef9a51d18","typeString":"literal_string \"TransferHelper: TRANSFER_FROM_FAILED\""}],"id":418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1362:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1362:106:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":436,"nodeType":"ExpressionStatement","src":"1362:106:2"}]},"documentation":null,"id":438,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":394,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":438,"src":"1064:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":393,"name":"address","nodeType":"ElementaryTypeName","src":"1064:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":396,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":438,"src":"1088:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":395,"name":"address","nodeType":"ElementaryTypeName","src":"1088:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":398,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":438,"src":"1111:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":397,"name":"address","nodeType":"ElementaryTypeName","src":"1111:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":400,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":438,"src":"1132:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":399,"name":"uint256","nodeType":"ElementaryTypeName","src":"1132:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1053:99:2"},"returnParameters":{"id":402,"nodeType":"ParameterList","parameters":[],"src":"1162:0:2"},"scope":464,"src":"1028:448:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":462,"nodeType":"Block","src":"1546:140:2","statements":[{"assignments":[446,null],"declarations":[{"constant":false,"id":446,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":462,"src":"1558:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":445,"name":"bool","nodeType":"ElementaryTypeName","src":"1558:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":456,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1608:1:2","subdenomination":null,"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":452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1598:9:2","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":451,"name":"bytes","nodeType":"ElementaryTypeName","src":"1602:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1598:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":447,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"1576:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1576:7:2","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":450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"argumentTypes":null,"id":449,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"1591:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1576:21:2","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":455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1576:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1557:54:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":458,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"1630:7:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5472616e7366657248656c7065723a20415641585f5452414e534645525f4641494c4544","id":459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1639:38:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6eeb3ea74a2f88de728640dd6a452276f122934c6fe6ff44e2119ba609848c2a","typeString":"literal_string \"TransferHelper: AVAX_TRANSFER_FAILED\""},"value":"TransferHelper: AVAX_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6eeb3ea74a2f88de728640dd6a452276f122934c6fe6ff44e2119ba609848c2a","typeString":"literal_string \"TransferHelper: AVAX_TRANSFER_FAILED\""}],"id":457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1622:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1622:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":461,"nodeType":"ExpressionStatement","src":"1622:56:2"}]},"documentation":null,"id":463,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAVAX","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":440,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":463,"src":"1510:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":439,"name":"address","nodeType":"ElementaryTypeName","src":"1510:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":442,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":463,"src":"1522:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":441,"name":"uint256","nodeType":"ElementaryTypeName","src":"1522:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1509:27:2"},"returnParameters":{"id":444,"nodeType":"ParameterList","parameters":[],"src":"1546:0:2"},"scope":464,"src":"1484:202:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":465,"src":"189:1500:2"}],"src":"48:1643:2"},"id":2},"contracts/pangolin-periphery/PangolinRouter.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/PangolinRouter.sol","exportedSymbols":{"PangolinRouter":[2502]},"id":2503,"nodeType":"SourceUnit","nodes":[{"id":466,"literals":["solidity","=","0.6",".6"],"nodeType":"PragmaDirective","src":"0:23:3"},{"absolutePath":"contracts/pangolin-core/interfaces/IPangolinFactory.sol","file":"../pangolin-core/interfaces/IPangolinFactory.sol","id":467,"nodeType":"ImportDirective","scope":2503,"sourceUnit":63,"src":"27:58:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-lib/libraries/TransferHelper.sol","file":"../pangolin-lib/libraries/TransferHelper.sol","id":468,"nodeType":"ImportDirective","scope":2503,"sourceUnit":465,"src":"87:54:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-periphery/interfaces/IPangolinRouter.sol","file":"./interfaces/IPangolinRouter.sol","id":469,"nodeType":"ImportDirective","scope":2503,"sourceUnit":2977,"src":"145:42:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-periphery/libraries/PangolinLibrary.sol","file":"./libraries/PangolinLibrary.sol","id":470,"nodeType":"ImportDirective","scope":2503,"sourceUnit":3477,"src":"189:41:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-periphery/libraries/SafeMath.sol","file":"./libraries/SafeMath.sol","id":471,"nodeType":"ImportDirective","scope":2503,"sourceUnit":3552,"src":"232:34:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-periphery/interfaces/IERC20.sol","file":"./interfaces/IERC20.sol","id":472,"nodeType":"ImportDirective","scope":2503,"sourceUnit":2587,"src":"268:33:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-periphery/interfaces/IWAVAX.sol","file":"./interfaces/IWAVAX.sol","id":473,"nodeType":"ImportDirective","scope":2503,"sourceUnit":3004,"src":"303:33:3","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":474,"name":"IPangolinRouter","nodeType":"UserDefinedTypeName","referencedDeclaration":2976,"src":"367:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinRouter_$2976","typeString":"contract IPangolinRouter"}},"id":475,"nodeType":"InheritanceSpecifier","src":"367:15:3"}],"contractDependencies":[2976],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":2502,"linearizedBaseContracts":[2502,2976],"name":"PangolinRouter","nodeType":"ContractDefinition","nodes":[{"id":478,"libraryName":{"contractScope":null,"id":476,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":3551,"src":"396:8:3","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$3551","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"390:24:3","typeName":{"id":477,"name":"uint","nodeType":"ElementaryTypeName","src":"409:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"baseFunctions":[2593],"constant":false,"functionSelector":"c45a0155","id":481,"mutability":"immutable","name":"factory","nodeType":"VariableDeclaration","overrides":{"id":480,"nodeType":"OverrideSpecifier","overrides":[],"src":"447:8:3"},"scope":2502,"src":"422:41:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":479,"name":"address","nodeType":"ElementaryTypeName","src":"422:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"baseFunctions":[2598],"constant":false,"functionSelector":"73b295c2","id":484,"mutability":"immutable","name":"WAVAX","nodeType":"VariableDeclaration","overrides":{"id":483,"nodeType":"OverrideSpecifier","overrides":[],"src":"495:8:3"},"scope":2502,"src":"470:39:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":482,"name":"address","nodeType":"ElementaryTypeName","src":"470:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"body":{"id":497,"nodeType":"Block","src":"549:94:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":489,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":486,"src":"568:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":490,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"580:5:3","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"580:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"568:27:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a2045585049524544","id":493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"597:25:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7b32b4162d1d22633a94c208ca28d85f859e06580d06bc986841529f8660ae5f","typeString":"literal_string \"PangolinRouter: EXPIRED\""},"value":"PangolinRouter: EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7b32b4162d1d22633a94c208ca28d85f859e06580d06bc986841529f8660ae5f","typeString":"literal_string \"PangolinRouter: EXPIRED\""}],"id":488,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"560:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"560:63:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":495,"nodeType":"ExpressionStatement","src":"560:63:3"},{"id":496,"nodeType":"PlaceholderStatement","src":"634:1:3"}]},"documentation":null,"id":498,"name":"ensure","nodeType":"ModifierDefinition","overrides":null,"parameters":{"id":487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":498,"src":"534:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":485,"name":"uint","nodeType":"ElementaryTypeName","src":"534:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"533:15:3"},"src":"518:125:3","virtual":false,"visibility":"internal"},{"body":{"id":513,"nodeType":"Block","src":"704:62:3","statements":[{"expression":{"argumentTypes":null,"id":507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":505,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"715:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":506,"name":"_factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"725:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"715:18:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":508,"nodeType":"ExpressionStatement","src":"715:18:3"},{"expression":{"argumentTypes":null,"id":511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":509,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"744:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":510,"name":"_WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"752:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"744:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":512,"nodeType":"ExpressionStatement","src":"744:14:3"}]},"documentation":null,"id":514,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":500,"mutability":"mutable","name":"_factory","nodeType":"VariableDeclaration","overrides":null,"scope":514,"src":"663:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":499,"name":"address","nodeType":"ElementaryTypeName","src":"663:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":502,"mutability":"mutable","name":"_WAVAX","nodeType":"VariableDeclaration","overrides":null,"scope":514,"src":"681:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":501,"name":"address","nodeType":"ElementaryTypeName","src":"681:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"662:34:3"},"returnParameters":{"id":504,"nodeType":"ParameterList","parameters":[],"src":"704:0:3"},"scope":2502,"src":"651:115:3","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":524,"nodeType":"Block","src":"801:103:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":518,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"819:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"819:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":520,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"833:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"819:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":517,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"812:6:3","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"812:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":523,"nodeType":"ExpressionStatement","src":"812:27:3"}]},"documentation":null,"id":525,"implemented":true,"kind":"receive","modifiers":[],"name":"","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":515,"nodeType":"ParameterList","parameters":[],"src":"781:2:3"},"returnParameters":{"id":516,"nodeType":"ParameterList","parameters":[],"src":"801:0:3"},"scope":2502,"src":"774:130:3","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":655,"nodeType":"Block","src":"1190:1137:3","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":548,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":527,"src":"1291:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":549,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":529,"src":"1299:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":545,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"1274:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":544,"name":"IPangolinFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62,"src":"1257:16:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinFactory_$62_$","typeString":"type(contract IPangolinFactory)"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1257:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinFactory_$62","typeString":"contract IPangolinFactory"}},"id":547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPair","nodeType":"MemberAccess","referencedDeclaration":30,"src":"1257:33:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address) view external returns (address)"}},"id":550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1257:49:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1318:1:3","subdenomination":null,"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":552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1310:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1310:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1257:63:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":565,"nodeType":"IfStatement","src":"1253:148:3","trueBody":{"id":564,"nodeType":"Block","src":"1322:79:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":560,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":527,"src":"1374:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":561,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":529,"src":"1382:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":557,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"1354:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":556,"name":"IPangolinFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62,"src":"1337:16:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinFactory_$62_$","typeString":"type(contract IPangolinFactory)"}},"id":558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1337:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinFactory_$62","typeString":"contract IPangolinFactory"}},"id":559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createPair","nodeType":"MemberAccess","referencedDeclaration":51,"src":"1337:36:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address) external returns (address)"}},"id":562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1337:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":563,"nodeType":"ExpressionStatement","src":"1337:52:3"}]}},{"assignments":[567,569],"declarations":[{"constant":false,"id":567,"mutability":"mutable","name":"reserveA","nodeType":"VariableDeclaration","overrides":null,"scope":655,"src":"1412:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":566,"name":"uint","nodeType":"ElementaryTypeName","src":"1412:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":569,"mutability":"mutable","name":"reserveB","nodeType":"VariableDeclaration","overrides":null,"scope":655,"src":"1427:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":568,"name":"uint","nodeType":"ElementaryTypeName","src":"1427:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":576,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":572,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"1472:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":573,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":527,"src":"1481:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":574,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":529,"src":"1489:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":570,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"1444:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getReserves","nodeType":"MemberAccess","referencedDeclaration":3150,"src":"1444:27:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,address,address) view returns (uint256,uint256)"}},"id":575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1444:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1411:85:3"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":577,"name":"reserveA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"1511:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1523:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1511:13:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":580,"name":"reserveB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":569,"src":"1528:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1540:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1528:13:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1511:30:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":653,"nodeType":"Block","src":"1629:691:3","statements":[{"assignments":[594],"declarations":[{"constant":false,"id":594,"mutability":"mutable","name":"amountBOptimal","nodeType":"VariableDeclaration","overrides":null,"scope":653,"src":"1644:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":593,"name":"uint","nodeType":"ElementaryTypeName","src":"1644:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":601,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":597,"name":"amountADesired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":531,"src":"1688:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":598,"name":"reserveA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"1704:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":599,"name":"reserveB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":569,"src":"1714:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":595,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"1666:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"quote","nodeType":"MemberAccess","referencedDeclaration":3189,"src":"1666:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1666:57:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1644:79:3"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":602,"name":"amountBOptimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"1742:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":603,"name":"amountBDesired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":533,"src":"1760:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1742:32:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":651,"nodeType":"Block","src":"1967:342:3","statements":[{"assignments":[622],"declarations":[{"constant":false,"id":622,"mutability":"mutable","name":"amountAOptimal","nodeType":"VariableDeclaration","overrides":null,"scope":651,"src":"1986:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":621,"name":"uint","nodeType":"ElementaryTypeName","src":"1986:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":629,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":625,"name":"amountBDesired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":533,"src":"2030:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":626,"name":"reserveB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":569,"src":"2046:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":627,"name":"reserveA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2056:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":623,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"2008:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"quote","nodeType":"MemberAccess","referencedDeclaration":3189,"src":"2008:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2008:57:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1986:79:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":631,"name":"amountAOptimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":622,"src":"2091:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":632,"name":"amountADesired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":531,"src":"2109:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2091:32:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":630,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2084:6:3","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2084:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":635,"nodeType":"ExpressionStatement","src":"2084:40:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":637,"name":"amountAOptimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":622,"src":"2151:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":638,"name":"amountAMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"2169:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2151:28:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e53554646494349454e545f415f414d4f554e54","id":640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2181:39:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d8a7081c1c3ed1b4c1f230afa3dea5d1e963597923a67457b874698b05000e39","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_A_AMOUNT\""},"value":"PangolinRouter: INSUFFICIENT_A_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d8a7081c1c3ed1b4c1f230afa3dea5d1e963597923a67457b874698b05000e39","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_A_AMOUNT\""}],"id":636,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2143:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2143:78:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":642,"nodeType":"ExpressionStatement","src":"2143:78:3"},{"expression":{"argumentTypes":null,"id":649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":643,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":540,"src":"2241:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":644,"name":"amountB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":542,"src":"2250:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":645,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2240:18:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":646,"name":"amountAOptimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":622,"src":"2262:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":647,"name":"amountBDesired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":533,"src":"2278:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":648,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2261:32:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"2240:53:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":650,"nodeType":"ExpressionStatement","src":"2240:53:3"}]},"id":652,"nodeType":"IfStatement","src":"1738:571:3","trueBody":{"id":620,"nodeType":"Block","src":"1776:185:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":606,"name":"amountBOptimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"1803:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":607,"name":"amountBMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":537,"src":"1821:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1803:28:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e53554646494349454e545f425f414d4f554e54","id":609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1833:39:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2100abb72c977342ca8f7679942f553385d7f9ccb5329449a15c1f73a4bc0208","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_B_AMOUNT\""},"value":"PangolinRouter: INSUFFICIENT_B_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2100abb72c977342ca8f7679942f553385d7f9ccb5329449a15c1f73a4bc0208","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_B_AMOUNT\""}],"id":605,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1795:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1795:78:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":611,"nodeType":"ExpressionStatement","src":"1795:78:3"},{"expression":{"argumentTypes":null,"id":618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":612,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":540,"src":"1893:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":613,"name":"amountB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":542,"src":"1902:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":614,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1892:18:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":615,"name":"amountADesired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":531,"src":"1914:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":616,"name":"amountBOptimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"1930:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":617,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1913:32:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"1892:53:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":619,"nodeType":"ExpressionStatement","src":"1892:53:3"}]}}]},"id":654,"nodeType":"IfStatement","src":"1507:813:3","trueBody":{"id":592,"nodeType":"Block","src":"1543:80:3","statements":[{"expression":{"argumentTypes":null,"id":590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":584,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":540,"src":"1559:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":585,"name":"amountB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":542,"src":"1568:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":586,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1558:18:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":587,"name":"amountADesired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":531,"src":"1580:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":588,"name":"amountBDesired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":533,"src":"1596:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":589,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1579:32:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"1558:53:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":591,"nodeType":"ExpressionStatement","src":"1558:53:3"}]}}]},"documentation":null,"id":656,"implemented":true,"kind":"function","modifiers":[],"name":"_addLiquidity","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":527,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":656,"src":"977:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":526,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":529,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":656,"src":"1002:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":528,"name":"address","nodeType":"ElementaryTypeName","src":"1002:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":531,"mutability":"mutable","name":"amountADesired","nodeType":"VariableDeclaration","overrides":null,"scope":656,"src":"1027:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":530,"name":"uint","nodeType":"ElementaryTypeName","src":"1027:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":533,"mutability":"mutable","name":"amountBDesired","nodeType":"VariableDeclaration","overrides":null,"scope":656,"src":"1057:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":532,"name":"uint","nodeType":"ElementaryTypeName","src":"1057:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":535,"mutability":"mutable","name":"amountAMin","nodeType":"VariableDeclaration","overrides":null,"scope":656,"src":"1087:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":534,"name":"uint","nodeType":"ElementaryTypeName","src":"1087:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":537,"mutability":"mutable","name":"amountBMin","nodeType":"VariableDeclaration","overrides":null,"scope":656,"src":"1113:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":536,"name":"uint","nodeType":"ElementaryTypeName","src":"1113:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"966:169:3"},"returnParameters":{"id":543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":540,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","overrides":null,"scope":656,"src":"1162:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":539,"name":"uint","nodeType":"ElementaryTypeName","src":"1162:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":542,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","overrides":null,"scope":656,"src":"1176:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":541,"name":"uint","nodeType":"ElementaryTypeName","src":"1176:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1161:28:3"},"scope":2502,"src":"944:1383:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[2623],"body":{"id":736,"nodeType":"Block","src":"2665:404:3","statements":[{"expression":{"argumentTypes":null,"id":696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":685,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"2677:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":686,"name":"amountB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":681,"src":"2686:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":687,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2676:18:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":689,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"2711:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":690,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":660,"src":"2719:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":691,"name":"amountADesired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":662,"src":"2727:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":692,"name":"amountBDesired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"2743:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":693,"name":"amountAMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":666,"src":"2759:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":694,"name":"amountBMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":668,"src":"2771:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":688,"name":"_addLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"2697:13:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)"}},"id":695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2697:85:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"2676:106:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":697,"nodeType":"ExpressionStatement","src":"2676:106:3"},{"assignments":[699],"declarations":[{"constant":false,"id":699,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":736,"src":"2793:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":698,"name":"address","nodeType":"ElementaryTypeName","src":"2793:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":706,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":702,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"2832:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":703,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"2841:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":704,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":660,"src":"2849:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":700,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"2808:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"2808:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2808:48:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2793:63:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":710,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"2899:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":711,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2907:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2907:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":713,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"2919:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":714,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"2925:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":707,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"2867:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":438,"src":"2867:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2867:66:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":716,"nodeType":"ExpressionStatement","src":"2867:66:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":720,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":660,"src":"2976:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":721,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2984:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2984:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":723,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"2996:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":724,"name":"amountB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":681,"src":"3002:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":717,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"2944:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":438,"src":"2944:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2944:66:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":726,"nodeType":"ExpressionStatement","src":"2944:66:3"},{"expression":{"argumentTypes":null,"id":734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":727,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"3021:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":732,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":670,"src":"3058:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":729,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"3047:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":728,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"3033:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$304_$","typeString":"type(contract IPangolinPair)"}},"id":730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3033:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"id":731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":268,"src":"3033:24:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) external returns (uint256)"}},"id":733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3033:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3021:40:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":735,"nodeType":"ExpressionStatement","src":"3021:40:3"}]},"documentation":null,"functionSelector":"e8e33700","id":737,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":676,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"2602:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":677,"modifierName":{"argumentTypes":null,"id":675,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"2595:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"2595:16:3"}],"name":"addLiquidity","nodeType":"FunctionDefinition","overrides":{"id":674,"nodeType":"OverrideSpecifier","overrides":[],"src":"2586:8:3"},"parameters":{"id":673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":658,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":737,"src":"2365:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":657,"name":"address","nodeType":"ElementaryTypeName","src":"2365:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":660,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":737,"src":"2390:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":659,"name":"address","nodeType":"ElementaryTypeName","src":"2390:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":662,"mutability":"mutable","name":"amountADesired","nodeType":"VariableDeclaration","overrides":null,"scope":737,"src":"2415:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":661,"name":"uint","nodeType":"ElementaryTypeName","src":"2415:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":664,"mutability":"mutable","name":"amountBDesired","nodeType":"VariableDeclaration","overrides":null,"scope":737,"src":"2445:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":663,"name":"uint","nodeType":"ElementaryTypeName","src":"2445:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":666,"mutability":"mutable","name":"amountAMin","nodeType":"VariableDeclaration","overrides":null,"scope":737,"src":"2475:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":665,"name":"uint","nodeType":"ElementaryTypeName","src":"2475:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":668,"mutability":"mutable","name":"amountBMin","nodeType":"VariableDeclaration","overrides":null,"scope":737,"src":"2501:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":667,"name":"uint","nodeType":"ElementaryTypeName","src":"2501:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":670,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":737,"src":"2527:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":669,"name":"address","nodeType":"ElementaryTypeName","src":"2527:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":672,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":737,"src":"2548:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":671,"name":"uint","nodeType":"ElementaryTypeName","src":"2548:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2354:214:3"},"returnParameters":{"id":684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":679,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","overrides":null,"scope":737,"src":"2621:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":678,"name":"uint","nodeType":"ElementaryTypeName","src":"2621:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":681,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","overrides":null,"scope":737,"src":"2635:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":680,"name":"uint","nodeType":"ElementaryTypeName","src":"2635:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":683,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":737,"src":"2649:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":682,"name":"uint","nodeType":"ElementaryTypeName","src":"2649:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2620:44:3"},"scope":2502,"src":"2333:736:3","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[2644],"body":{"id":838,"nodeType":"Block","src":"3381:683:3","statements":[{"expression":{"argumentTypes":null,"id":774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":762,"name":"amountToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":756,"src":"3393:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":763,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"3406:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":764,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3392:25:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":766,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"3448:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":767,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"3468:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":768,"name":"amountTokenDesired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":741,"src":"3488:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":769,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3521:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3521:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":771,"name":"amountTokenMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"3545:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":772,"name":"amountAVAXMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"3574:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":765,"name":"_addLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"3420:13:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)"}},"id":773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3420:178:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"3392:206:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":775,"nodeType":"ExpressionStatement","src":"3392:206:3"},{"assignments":[777],"declarations":[{"constant":false,"id":777,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":838,"src":"3609:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":776,"name":"address","nodeType":"ElementaryTypeName","src":"3609:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":784,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":780,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"3648:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":781,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"3657:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":782,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"3664:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":778,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"3624:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"3624:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3624:46:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3609:61:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":788,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"3713:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":789,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3720:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3720:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":791,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":777,"src":"3732:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":792,"name":"amountToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":756,"src":"3738:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":785,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"3681:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":438,"src":"3681:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3681:69:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":794,"nodeType":"ExpressionStatement","src":"3681:69:3"},{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":796,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"3768:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":795,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"3761:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3761:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":2981,"src":"3761:21:3","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"argumentTypes":null,"id":799,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"3790:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3761:40:3","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3761:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":802,"nodeType":"ExpressionStatement","src":"3761:42:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":808,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":777,"src":"3844:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":809,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"3850:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":805,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"3828:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":804,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"3821:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3821:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":2990,"src":"3821:22:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3821:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":803,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"3814:6:3","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3814:48:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":812,"nodeType":"ExpressionStatement","src":"3814:48:3"},{"expression":{"argumentTypes":null,"id":820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":813,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":760,"src":"3873:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":818,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":747,"src":"3910:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":815,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":777,"src":"3899:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":814,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"3885:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$304_$","typeString":"type(contract IPangolinPair)"}},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3885:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"id":817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":268,"src":"3885:24:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) external returns (uint256)"}},"id":819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3885:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3873:40:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":821,"nodeType":"ExpressionStatement","src":"3873:40:3"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":822,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3965:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3965:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":824,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"3977:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3965:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":837,"nodeType":"IfStatement","src":"3961:95:3","trueBody":{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":829,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4021:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4021:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":831,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4033:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4033:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":833,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"4045:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4033:22:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":826,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"3989:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferAVAX","nodeType":"MemberAccess","referencedDeclaration":463,"src":"3989:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3989:67:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":836,"nodeType":"ExpressionStatement","src":"3989:67:3"}}]},"documentation":null,"functionSelector":"f91b3f72","id":839,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":753,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":749,"src":"3311:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":754,"modifierName":{"argumentTypes":null,"id":752,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"3304:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"3304:16:3"}],"name":"addLiquidityAVAX","nodeType":"FunctionDefinition","overrides":{"id":751,"nodeType":"OverrideSpecifier","overrides":[],"src":"3287:8:3"},"parameters":{"id":750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":739,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":839,"src":"3111:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":738,"name":"address","nodeType":"ElementaryTypeName","src":"3111:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":741,"mutability":"mutable","name":"amountTokenDesired","nodeType":"VariableDeclaration","overrides":null,"scope":839,"src":"3135:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":740,"name":"uint","nodeType":"ElementaryTypeName","src":"3135:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":743,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","overrides":null,"scope":839,"src":"3169:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":742,"name":"uint","nodeType":"ElementaryTypeName","src":"3169:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":745,"mutability":"mutable","name":"amountAVAXMin","nodeType":"VariableDeclaration","overrides":null,"scope":839,"src":"3199:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":744,"name":"uint","nodeType":"ElementaryTypeName","src":"3199:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":747,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":839,"src":"3228:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":746,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":749,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":839,"src":"3249:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":748,"name":"uint","nodeType":"ElementaryTypeName","src":"3249:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3100:169:3"},"returnParameters":{"id":761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":756,"mutability":"mutable","name":"amountToken","nodeType":"VariableDeclaration","overrides":null,"scope":839,"src":"3330:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":755,"name":"uint","nodeType":"ElementaryTypeName","src":"3330:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":758,"mutability":"mutable","name":"amountAVAX","nodeType":"VariableDeclaration","overrides":null,"scope":839,"src":"3348:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":757,"name":"uint","nodeType":"ElementaryTypeName","src":"3348:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":760,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":839,"src":"3365:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":759,"name":"uint","nodeType":"ElementaryTypeName","src":"3365:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3329:51:3"},"scope":2502,"src":"3075:989:3","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[2665],"body":{"id":931,"nodeType":"Block","src":"4389:577:3","statements":[{"assignments":[865],"declarations":[{"constant":false,"id":865,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":931,"src":"4400:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":864,"name":"address","nodeType":"ElementaryTypeName","src":"4400:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":872,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":868,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"4439:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":869,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":841,"src":"4448:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":870,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":843,"src":"4456:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":866,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"4415:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"4415:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4415:48:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4400:63:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":877,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4507:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4507:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":879,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"4519:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":880,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"4525:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":874,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"4488:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":873,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"4474:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$304_$","typeString":"type(contract IPangolinPair)"}},"id":875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4474:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"id":876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":145,"src":"4474:32:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4474:61:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":882,"nodeType":"ExpressionStatement","src":"4474:61:3"},{"assignments":[884,886],"declarations":[{"constant":false,"id":884,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","overrides":null,"scope":931,"src":"4573:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":883,"name":"uint","nodeType":"ElementaryTypeName","src":"4573:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":886,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","overrides":null,"scope":931,"src":"4587:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":885,"name":"uint","nodeType":"ElementaryTypeName","src":"4587:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":893,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":891,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":851,"src":"4628:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":888,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"4617:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":887,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"4603:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$304_$","typeString":"type(contract IPangolinPair)"}},"id":889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4603:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"id":890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":277,"src":"4603:24:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) external returns (uint256,uint256)"}},"id":892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4603:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4572:59:3"},{"assignments":[895,null],"declarations":[{"constant":false,"id":895,"mutability":"mutable","name":"token0","nodeType":"VariableDeclaration","overrides":null,"scope":931,"src":"4643:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":894,"name":"address","nodeType":"ElementaryTypeName","src":"4643:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},null],"id":901,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":898,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":841,"src":"4689:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":899,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":843,"src":"4697:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":896,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"4662:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sortTokens","nodeType":"MemberAccess","referencedDeclaration":3055,"src":"4662:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$","typeString":"function (address,address) pure returns (address,address)"}},"id":900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4662:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"4642:62:3"},{"expression":{"argumentTypes":null,"id":915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":902,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":860,"src":"4716:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":903,"name":"amountB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":862,"src":"4725:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":904,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4715:18:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":905,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":841,"src":"4736:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":906,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":895,"src":"4746:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4736:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":911,"name":"amount1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":886,"src":"4777:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":912,"name":"amount0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":884,"src":"4786:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":913,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4776:18:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4736:58:3","trueExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":908,"name":"amount0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":884,"src":"4756:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":909,"name":"amount1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":886,"src":"4765:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":910,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4755:18:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"4715:79:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":916,"nodeType":"ExpressionStatement","src":"4715:79:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":918,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":860,"src":"4813:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":919,"name":"amountAMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"4824:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4813:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e53554646494349454e545f415f414d4f554e54","id":921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4836:39:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d8a7081c1c3ed1b4c1f230afa3dea5d1e963597923a67457b874698b05000e39","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_A_AMOUNT\""},"value":"PangolinRouter: INSUFFICIENT_A_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d8a7081c1c3ed1b4c1f230afa3dea5d1e963597923a67457b874698b05000e39","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_A_AMOUNT\""}],"id":917,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4805:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4805:71:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":923,"nodeType":"ExpressionStatement","src":"4805:71:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":925,"name":"amountB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":862,"src":"4895:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":926,"name":"amountBMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"4906:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4895:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e53554646494349454e545f425f414d4f554e54","id":928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4918:39:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2100abb72c977342ca8f7679942f553385d7f9ccb5329449a15c1f73a4bc0208","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_B_AMOUNT\""},"value":"PangolinRouter: INSUFFICIENT_B_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2100abb72c977342ca8f7679942f553385d7f9ccb5329449a15c1f73a4bc0208","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_B_AMOUNT\""}],"id":924,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4887:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4887:71:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":930,"nodeType":"ExpressionStatement","src":"4887:71:3"}]},"documentation":null,"functionSelector":"baa2abde","id":932,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":857,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":853,"src":"4342:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":858,"modifierName":{"argumentTypes":null,"id":856,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"4335:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"4335:16:3"}],"name":"removeLiquidity","nodeType":"FunctionDefinition","overrides":{"id":855,"nodeType":"OverrideSpecifier","overrides":[],"src":"4326:8:3"},"parameters":{"id":854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":841,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":932,"src":"4142:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":840,"name":"address","nodeType":"ElementaryTypeName","src":"4142:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":843,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":932,"src":"4167:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":842,"name":"address","nodeType":"ElementaryTypeName","src":"4167:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":845,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":932,"src":"4192:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":844,"name":"uint","nodeType":"ElementaryTypeName","src":"4192:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":847,"mutability":"mutable","name":"amountAMin","nodeType":"VariableDeclaration","overrides":null,"scope":932,"src":"4217:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":846,"name":"uint","nodeType":"ElementaryTypeName","src":"4217:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":849,"mutability":"mutable","name":"amountBMin","nodeType":"VariableDeclaration","overrides":null,"scope":932,"src":"4243:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":848,"name":"uint","nodeType":"ElementaryTypeName","src":"4243:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":851,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":932,"src":"4269:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":850,"name":"address","nodeType":"ElementaryTypeName","src":"4269:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":853,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":932,"src":"4290:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":852,"name":"uint","nodeType":"ElementaryTypeName","src":"4290:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4131:179:3"},"returnParameters":{"id":863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":860,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","overrides":null,"scope":932,"src":"4361:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":859,"name":"uint","nodeType":"ElementaryTypeName","src":"4361:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":862,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","overrides":null,"scope":932,"src":"4375:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":861,"name":"uint","nodeType":"ElementaryTypeName","src":"4375:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4360:28:3"},"scope":2502,"src":"4107:859:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2684],"body":{"id":994,"nodeType":"Block","src":"5246:410:3","statements":[{"expression":{"argumentTypes":null,"id":970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":955,"name":"amountToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":951,"src":"5258:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":956,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":953,"src":"5271:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":957,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5257:25:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":959,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":934,"src":"5315:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":960,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"5335:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":961,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":936,"src":"5355:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":962,"name":"amountTokenMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":938,"src":"5379:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":963,"name":"amountAVAXMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":940,"src":"5408:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":966,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5444:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}],"id":965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5436:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":964,"name":"address","nodeType":"ElementaryTypeName","src":"5436:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5436:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":968,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"5464:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":958,"name":"removeLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":932,"src":"5285:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)"}},"id":969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5285:198:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"5257:226:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":971,"nodeType":"ExpressionStatement","src":"5257:226:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":975,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":934,"src":"5522:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":976,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":942,"src":"5529:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":977,"name":"amountToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":951,"src":"5533:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":972,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"5494:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":392,"src":"5494:27:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5494:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":979,"nodeType":"ExpressionStatement","src":"5494:51:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":984,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":953,"src":"5579:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":981,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"5563:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":980,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"5556:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5556:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":3002,"src":"5556:22:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5556:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":986,"nodeType":"ExpressionStatement","src":"5556:34:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":990,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":942,"src":"5633:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":991,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":953,"src":"5637:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":987,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"5601:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferAVAX","nodeType":"MemberAccess","referencedDeclaration":463,"src":"5601:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5601:47:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":993,"nodeType":"ExpressionStatement","src":"5601:47:3"}]},"documentation":null,"functionSelector":"33c6b725","id":995,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":948,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"5192:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":949,"modifierName":{"argumentTypes":null,"id":947,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"5185:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"5185:16:3"}],"name":"removeLiquidityAVAX","nodeType":"FunctionDefinition","overrides":{"id":946,"nodeType":"OverrideSpecifier","overrides":[],"src":"5176:8:3"},"parameters":{"id":945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":934,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":995,"src":"5011:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":933,"name":"address","nodeType":"ElementaryTypeName","src":"5011:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":936,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":995,"src":"5035:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":935,"name":"uint","nodeType":"ElementaryTypeName","src":"5035:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":938,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","overrides":null,"scope":995,"src":"5060:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":937,"name":"uint","nodeType":"ElementaryTypeName","src":"5060:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":940,"mutability":"mutable","name":"amountAVAXMin","nodeType":"VariableDeclaration","overrides":null,"scope":995,"src":"5090:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":939,"name":"uint","nodeType":"ElementaryTypeName","src":"5090:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":942,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":995,"src":"5119:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":941,"name":"address","nodeType":"ElementaryTypeName","src":"5119:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":944,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":995,"src":"5140:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":943,"name":"uint","nodeType":"ElementaryTypeName","src":"5140:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5000:160:3"},"returnParameters":{"id":954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":951,"mutability":"mutable","name":"amountToken","nodeType":"VariableDeclaration","overrides":null,"scope":995,"src":"5211:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":950,"name":"uint","nodeType":"ElementaryTypeName","src":"5211:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":953,"mutability":"mutable","name":"amountAVAX","nodeType":"VariableDeclaration","overrides":null,"scope":995,"src":"5229:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":952,"name":"uint","nodeType":"ElementaryTypeName","src":"5229:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5210:35:3"},"scope":2502,"src":"4972:684:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2713],"body":{"id":1076,"nodeType":"Block","src":"5996:341:3","statements":[{"assignments":[1026],"declarations":[{"constant":false,"id":1026,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":1076,"src":"6007:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1025,"name":"address","nodeType":"ElementaryTypeName","src":"6007:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":1033,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1029,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"6046:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1030,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"6055:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1031,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":999,"src":"6063:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1027,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"6022:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"6022:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":1032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6022:48:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6007:63:3"},{"assignments":[1035],"declarations":[{"constant":false,"id":1035,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":1076,"src":"6081:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1034,"name":"uint","nodeType":"ElementaryTypeName","src":"6081:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1044,"initialValue":{"argumentTypes":null,"condition":{"argumentTypes":null,"id":1036,"name":"approveMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"6094:10:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"id":1042,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1001,"src":"6118:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6094:33:3","trueExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"6112:2:3","subExpression":{"argumentTypes":null,"hexValue":"31","id":1039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6113:1:3","subdenomination":null,"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":1038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6107:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1037,"name":"uint","nodeType":"ElementaryTypeName","src":"6107:4:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6107:8:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6081:46:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1049,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6165:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6165:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1053,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6185:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}],"id":1052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6177:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1051,"name":"address","nodeType":"ElementaryTypeName","src":"6177:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6177:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1055,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1035,"src":"6192:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1056,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1009,"src":"6199:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1057,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"6209:1:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":1058,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"6212:1:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":1059,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"6215:1:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1046,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1026,"src":"6152:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1045,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"6138:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$304_$","typeString":"type(contract IPangolinPair)"}},"id":1047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6138:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"id":1048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":179,"src":"6138:26:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":1060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6138:79:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1061,"nodeType":"ExpressionStatement","src":"6138:79:3"},{"expression":{"argumentTypes":null,"id":1074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":1062,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"6229:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1063,"name":"amountB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1023,"src":"6238:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1064,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6228:18:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1066,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"6265:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1067,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":999,"src":"6273:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1068,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1001,"src":"6281:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1069,"name":"amountAMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"6292:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1070,"name":"amountBMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1005,"src":"6304:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1071,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1007,"src":"6316:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1072,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1009,"src":"6320:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1065,"name":"removeLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":932,"src":"6249:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)"}},"id":1073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6249:80:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"6228:101:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1075,"nodeType":"ExpressionStatement","src":"6228:101:3"}]},"documentation":null,"functionSelector":"2195995c","id":1077,"implemented":true,"kind":"function","modifiers":[],"name":"removeLiquidityWithPermit","nodeType":"FunctionDefinition","overrides":{"id":1019,"nodeType":"OverrideSpecifier","overrides":[],"src":"5950:8:3"},"parameters":{"id":1018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":997,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5707:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":996,"name":"address","nodeType":"ElementaryTypeName","src":"5707:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":999,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5732:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":998,"name":"address","nodeType":"ElementaryTypeName","src":"5732:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1001,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5757:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1000,"name":"uint","nodeType":"ElementaryTypeName","src":"5757:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1003,"mutability":"mutable","name":"amountAMin","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5782:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1002,"name":"uint","nodeType":"ElementaryTypeName","src":"5782:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1005,"mutability":"mutable","name":"amountBMin","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5808:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1004,"name":"uint","nodeType":"ElementaryTypeName","src":"5808:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1007,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5834:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1006,"name":"address","nodeType":"ElementaryTypeName","src":"5834:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1009,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5855:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1008,"name":"uint","nodeType":"ElementaryTypeName","src":"5855:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1011,"mutability":"mutable","name":"approveMax","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5879:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1010,"name":"bool","nodeType":"ElementaryTypeName","src":"5879:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":1013,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5896:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1012,"name":"uint8","nodeType":"ElementaryTypeName","src":"5896:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":1015,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5905:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1014,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5905:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1017,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5916:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1016,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5916:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5696:236:3"},"returnParameters":{"id":1024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1021,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5968:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1020,"name":"uint","nodeType":"ElementaryTypeName","src":"5968:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1023,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","overrides":null,"scope":1077,"src":"5982:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1022,"name":"uint","nodeType":"ElementaryTypeName","src":"5982:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5967:28:3"},"scope":2502,"src":"5662:675:3","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[2740],"body":{"id":1155,"nodeType":"Block","src":"6669:348:3","statements":[{"assignments":[1106],"declarations":[{"constant":false,"id":1106,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":1155,"src":"6680:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1105,"name":"address","nodeType":"ElementaryTypeName","src":"6680:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":1113,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1109,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"6719:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1110,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"6728:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1111,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"6735:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1107,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"6695:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"6695:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":1112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6695:46:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6680:61:3"},{"assignments":[1115],"declarations":[{"constant":false,"id":1115,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":1155,"src":"6752:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1114,"name":"uint","nodeType":"ElementaryTypeName","src":"6752:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1124,"initialValue":{"argumentTypes":null,"condition":{"argumentTypes":null,"id":1116,"name":"approveMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"6765:10:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"id":1122,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1081,"src":"6789:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6765:33:3","trueExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"6783:2:3","subExpression":{"argumentTypes":null,"hexValue":"31","id":1119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6784:1:3","subdenomination":null,"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":1118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6778:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1117,"name":"uint","nodeType":"ElementaryTypeName","src":"6778:4:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6778:8:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6752:46:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1129,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6836:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6836:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1133,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6856:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}],"id":1132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6848:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1131,"name":"address","nodeType":"ElementaryTypeName","src":"6848:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6848:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1135,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1115,"src":"6863:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1136,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"6870:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1137,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1093,"src":"6880:1:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":1138,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1095,"src":"6883:1:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":1139,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1097,"src":"6886:1:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1126,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"6823:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1125,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"6809:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$304_$","typeString":"type(contract IPangolinPair)"}},"id":1127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6809:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"id":1128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":179,"src":"6809:26:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6809:79:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1141,"nodeType":"ExpressionStatement","src":"6809:79:3"},{"expression":{"argumentTypes":null,"id":1153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":1142,"name":"amountToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"6900:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1143,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1103,"src":"6913:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1144,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6899:25:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1146,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"6947:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1147,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1081,"src":"6954:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1148,"name":"amountTokenMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1083,"src":"6965:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1149,"name":"amountAVAXMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1085,"src":"6981:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1150,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"6996:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1151,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"7000:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1145,"name":"removeLiquidityAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"6927:19:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)"}},"id":1152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6927:82:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"6899:110:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1154,"nodeType":"ExpressionStatement","src":"6899:110:3"}]},"documentation":null,"functionSelector":"2c407024","id":1156,"implemented":true,"kind":"function","modifiers":[],"name":"removeLiquidityAVAXWithPermit","nodeType":"FunctionDefinition","overrides":{"id":1099,"nodeType":"OverrideSpecifier","overrides":[],"src":"6616:8:3"},"parameters":{"id":1098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1079,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6392:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1078,"name":"address","nodeType":"ElementaryTypeName","src":"6392:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1081,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6416:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1080,"name":"uint","nodeType":"ElementaryTypeName","src":"6416:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1083,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6441:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1082,"name":"uint","nodeType":"ElementaryTypeName","src":"6441:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1085,"mutability":"mutable","name":"amountAVAXMin","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6471:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1084,"name":"uint","nodeType":"ElementaryTypeName","src":"6471:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1087,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6500:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1086,"name":"address","nodeType":"ElementaryTypeName","src":"6500:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1089,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6521:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1088,"name":"uint","nodeType":"ElementaryTypeName","src":"6521:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1091,"mutability":"mutable","name":"approveMax","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6545:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1090,"name":"bool","nodeType":"ElementaryTypeName","src":"6545:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":1093,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6562:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1092,"name":"uint8","nodeType":"ElementaryTypeName","src":"6562:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":1095,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6571:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1094,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6571:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1097,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6582:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1096,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6582:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"6381:217:3"},"returnParameters":{"id":1104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1101,"mutability":"mutable","name":"amountToken","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6634:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1100,"name":"uint","nodeType":"ElementaryTypeName","src":"6634:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1103,"mutability":"mutable","name":"amountAVAX","nodeType":"VariableDeclaration","overrides":null,"scope":1156,"src":"6652:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1102,"name":"uint","nodeType":"ElementaryTypeName","src":"6652:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6633:35:3"},"scope":2502,"src":"6343:674:3","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[2910],"body":{"id":1223,"nodeType":"Block","src":"7381:426:3","statements":[{"expression":{"argumentTypes":null,"id":1191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[null,{"argumentTypes":null,"id":1177,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1175,"src":"7395:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1178,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"7392:14:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_uint256_$","typeString":"tuple(,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1180,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"7439:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1181,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"7459:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1182,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1160,"src":"7479:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1183,"name":"amountTokenMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"7503:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1184,"name":"amountAVAXMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"7532:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1187,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7568:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}],"id":1186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7560:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1185,"name":"address","nodeType":"ElementaryTypeName","src":"7560:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7560:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1189,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"7588:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1179,"name":"removeLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":932,"src":"7409:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,address,uint256,uint256,uint256,address,uint256) returns (uint256,uint256)"}},"id":1190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7409:198:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"7392:215:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1192,"nodeType":"ExpressionStatement","src":"7392:215:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1196,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"7646:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1197,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"7653:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1204,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7689:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}],"id":1203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7681:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1202,"name":"address","nodeType":"ElementaryTypeName","src":"7681:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7681:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1199,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"7664:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1198,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"7657:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$2586_$","typeString":"type(contract IERC20)"}},"id":1200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7657:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$2586","typeString":"contract IERC20"}},"id":1201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":2547,"src":"7657:23:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":1206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7657:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1193,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"7618:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":1195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":392,"src":"7618:27:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7618:78:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1208,"nodeType":"ExpressionStatement","src":"7618:78:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1213,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1175,"src":"7730:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1210,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"7714:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1209,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"7707:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":1211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7707:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":1212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":3002,"src":"7707:22:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":1214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7707:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1215,"nodeType":"ExpressionStatement","src":"7707:34:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1219,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"7784:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1220,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1175,"src":"7788:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1216,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"7752:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":1218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferAVAX","nodeType":"MemberAccess","referencedDeclaration":463,"src":"7752:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7752:47:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1222,"nodeType":"ExpressionStatement","src":"7752:47:3"}]},"documentation":null,"functionSelector":"73bc79cf","id":1224,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1172,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"7345:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1173,"modifierName":{"argumentTypes":null,"id":1171,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"7338:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"7338:16:3"}],"name":"removeLiquidityAVAXSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","overrides":{"id":1170,"nodeType":"OverrideSpecifier","overrides":[],"src":"7329:8:3"},"parameters":{"id":1169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1158,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":1224,"src":"7164:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1157,"name":"address","nodeType":"ElementaryTypeName","src":"7164:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1160,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":1224,"src":"7188:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1159,"name":"uint","nodeType":"ElementaryTypeName","src":"7188:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1162,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","overrides":null,"scope":1224,"src":"7213:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1161,"name":"uint","nodeType":"ElementaryTypeName","src":"7213:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1164,"mutability":"mutable","name":"amountAVAXMin","nodeType":"VariableDeclaration","overrides":null,"scope":1224,"src":"7243:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1163,"name":"uint","nodeType":"ElementaryTypeName","src":"7243:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1166,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1224,"src":"7272:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1165,"name":"address","nodeType":"ElementaryTypeName","src":"7272:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1168,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":1224,"src":"7293:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1167,"name":"uint","nodeType":"ElementaryTypeName","src":"7293:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7153:160:3"},"returnParameters":{"id":1176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1175,"mutability":"mutable","name":"amountAVAX","nodeType":"VariableDeclaration","overrides":null,"scope":1224,"src":"7364:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1174,"name":"uint","nodeType":"ElementaryTypeName","src":"7364:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7363:17:3"},"scope":2502,"src":"7096:711:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2935],"body":{"id":1298,"nodeType":"Block","src":"8150:386:3","statements":[{"assignments":[1251],"declarations":[{"constant":false,"id":1251,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":1298,"src":"8161:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1250,"name":"address","nodeType":"ElementaryTypeName","src":"8161:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":1258,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1254,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"8200:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1255,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"8209:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1256,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"8216:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1252,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"8176:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"8176:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":1257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8176:46:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8161:61:3"},{"assignments":[1260],"declarations":[{"constant":false,"id":1260,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":1298,"src":"8233:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1259,"name":"uint","nodeType":"ElementaryTypeName","src":"8233:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1269,"initialValue":{"argumentTypes":null,"condition":{"argumentTypes":null,"id":1261,"name":"approveMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1238,"src":"8246:10:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"id":1267,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"8270:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8246:33:3","trueExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"8264:2:3","subExpression":{"argumentTypes":null,"hexValue":"31","id":1264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8265:1:3","subdenomination":null,"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":1263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8259:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1262,"name":"uint","nodeType":"ElementaryTypeName","src":"8259:4:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8259:8:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8233:46:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1274,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8317:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8317:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1278,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8337:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}],"id":1277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8329:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1276,"name":"address","nodeType":"ElementaryTypeName","src":"8329:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8329:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1280,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1260,"src":"8344:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1281,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"8351:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1282,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"8361:1:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":1283,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1242,"src":"8364:1:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":1284,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1244,"src":"8367:1:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1271,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"8304:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1270,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"8290:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$304_$","typeString":"type(contract IPangolinPair)"}},"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8290:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"id":1273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":179,"src":"8290:26:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":1285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8290:79:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1286,"nodeType":"ExpressionStatement","src":"8290:79:3"},{"expression":{"argumentTypes":null,"id":1296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1287,"name":"amountAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"8380:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1289,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"8456:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1290,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"8463:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1291,"name":"amountTokenMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"8474:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1292,"name":"amountAVAXMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"8490:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1293,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"8505:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1294,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"8509:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1288,"name":"removeLiquidityAVAXSupportingFeeOnTransferTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"8393:48:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,address,uint256) returns (uint256)"}},"id":1295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8393:135:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8380:148:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1297,"nodeType":"ExpressionStatement","src":"8380:148:3"}]},"documentation":null,"functionSelector":"9fc27226","id":1299,"implemented":true,"kind":"function","modifiers":[],"name":"removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","overrides":{"id":1246,"nodeType":"OverrideSpecifier","overrides":[],"src":"8115:8:3"},"parameters":{"id":1245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1226,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":1299,"src":"7891:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1225,"name":"address","nodeType":"ElementaryTypeName","src":"7891:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1228,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":1299,"src":"7915:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1227,"name":"uint","nodeType":"ElementaryTypeName","src":"7915:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1230,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","overrides":null,"scope":1299,"src":"7940:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1229,"name":"uint","nodeType":"ElementaryTypeName","src":"7940:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1232,"mutability":"mutable","name":"amountAVAXMin","nodeType":"VariableDeclaration","overrides":null,"scope":1299,"src":"7970:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1231,"name":"uint","nodeType":"ElementaryTypeName","src":"7970:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1234,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1299,"src":"7999:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1233,"name":"address","nodeType":"ElementaryTypeName","src":"7999:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1236,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":1299,"src":"8020:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1235,"name":"uint","nodeType":"ElementaryTypeName","src":"8020:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1238,"mutability":"mutable","name":"approveMax","nodeType":"VariableDeclaration","overrides":null,"scope":1299,"src":"8044:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1237,"name":"bool","nodeType":"ElementaryTypeName","src":"8044:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":1240,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":1299,"src":"8061:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1239,"name":"uint8","nodeType":"ElementaryTypeName","src":"8061:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":1242,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":1299,"src":"8070:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8070:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1244,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":1299,"src":"8081:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8081:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7880:217:3"},"returnParameters":{"id":1249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1248,"mutability":"mutable","name":"amountAVAX","nodeType":"VariableDeclaration","overrides":null,"scope":1299,"src":"8133:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1247,"name":"uint","nodeType":"ElementaryTypeName","src":"8133:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8132:17:3"},"scope":2502,"src":"7813:723:3","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":1414,"nodeType":"Block","src":"8738:640:3","statements":[{"body":{"id":1412,"nodeType":"Block","src":"8788:583:3","statements":[{"assignments":[1323,1325],"declarations":[{"constant":false,"id":1323,"mutability":"mutable","name":"input","nodeType":"VariableDeclaration","overrides":null,"scope":1412,"src":"8804:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1322,"name":"address","nodeType":"ElementaryTypeName","src":"8804:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1325,"mutability":"mutable","name":"output","nodeType":"VariableDeclaration","overrides":null,"scope":1412,"src":"8819:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1324,"name":"address","nodeType":"ElementaryTypeName","src":"8819:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":1335,"initialValue":{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1326,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"8838:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1328,"indexExpression":{"argumentTypes":null,"id":1327,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"8843:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8838:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1329,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"8847:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1333,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1330,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"8852:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8856:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8852:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8847:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1334,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8837:22:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"8803:56:3"},{"assignments":[1337,null],"declarations":[{"constant":false,"id":1337,"mutability":"mutable","name":"token0","nodeType":"VariableDeclaration","overrides":null,"scope":1412,"src":"8875:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1336,"name":"address","nodeType":"ElementaryTypeName","src":"8875:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},null],"id":1343,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1340,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1323,"src":"8921:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1341,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1325,"src":"8928:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1338,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"8894:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sortTokens","nodeType":"MemberAccess","referencedDeclaration":3055,"src":"8894:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$","typeString":"function (address,address) pure returns (address,address)"}},"id":1342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8894:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"8874:61:3"},{"assignments":[1345],"declarations":[{"constant":false,"id":1345,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":1412,"src":"8950:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1344,"name":"uint","nodeType":"ElementaryTypeName","src":"8950:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1351,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1346,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1302,"src":"8967:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1350,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"8975:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8979:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8975:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8967:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8950:31:3"},{"assignments":[1353,1355],"declarations":[{"constant":false,"id":1353,"mutability":"mutable","name":"amount0Out","nodeType":"VariableDeclaration","overrides":null,"scope":1412,"src":"8997:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1352,"name":"uint","nodeType":"ElementaryTypeName","src":"8997:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1355,"mutability":"mutable","name":"amount1Out","nodeType":"VariableDeclaration","overrides":null,"scope":1412,"src":"9014:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1354,"name":"uint","nodeType":"ElementaryTypeName","src":"9014:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1372,"initialValue":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1356,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1323,"src":"9033:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1357,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1337,"src":"9042:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9033:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":1365,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"9075:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9091:1:3","subdenomination":null,"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":1367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9086:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1366,"name":"uint","nodeType":"ElementaryTypeName","src":"9086:4:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9086:7:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1370,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9074:20:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":1371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9033:61:3","trueExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9057:1:3","subdenomination":null,"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":1360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9052:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1359,"name":"uint","nodeType":"ElementaryTypeName","src":"9052:4:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9052:7:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1363,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"9061:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1364,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9051:20:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8996:98:3"},{"assignments":[1374],"declarations":[{"constant":false,"id":1374,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1412,"src":"9109:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1373,"name":"address","nodeType":"ElementaryTypeName","src":"9109:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":1393,"initialValue":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1375,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"9122:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1376,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"9126:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9126:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"32","id":1378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9140:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9126:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9122:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"id":1391,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1307,"src":"9200:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9122:81:3","trueExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1383,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"9168:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1384,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1325,"src":"9177:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1385,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"9185:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1389,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1386,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"9190:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"32","id":1387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9194:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9190:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9185:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1381,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9144:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"9144:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":1390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9144:53:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9109:94:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1403,"name":"amount0Out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"9304:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1404,"name":"amount1Out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1355,"src":"9316:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1405,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1374,"src":"9328:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9342:1:3","subdenomination":null,"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":1407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9332:9:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":1406,"name":"bytes","nodeType":"ElementaryTypeName","src":"9336:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":1409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9332:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1397,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"9256:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1398,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1323,"src":"9265:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1399,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1325,"src":"9272:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1395,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9232:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"9232:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":1400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9232:47:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1394,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"9218:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$304_$","typeString":"type(contract IPangolinPair)"}},"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9218:62:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":288,"src":"9218:67:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,address,bytes memory) external"}},"id":1410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9218:141:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1411,"nodeType":"ExpressionStatement","src":"9218:141:3"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1313,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"8762:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1314,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"8766:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8766:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8780:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8766:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8762:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1413,"initializationExpression":{"assignments":[1311],"declarations":[{"constant":false,"id":1311,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","overrides":null,"scope":1413,"src":"8754:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1310,"name":"uint","nodeType":"ElementaryTypeName","src":"8754:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1312,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"8754:6:3"},"loopExpression":{"expression":{"argumentTypes":null,"id":1320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8783:3:3","subExpression":{"argumentTypes":null,"id":1319,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"8783:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1321,"nodeType":"ExpressionStatement","src":"8783:3:3"},"nodeType":"ForStatement","src":"8749:622:3"}]},"documentation":null,"id":1415,"implemented":true,"kind":"function","modifiers":[],"name":"_swap","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":1308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1302,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":1415,"src":"8662:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1300,"name":"uint","nodeType":"ElementaryTypeName","src":"8662:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1301,"length":null,"nodeType":"ArrayTypeName","src":"8662:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1305,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":1415,"src":"8685:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1303,"name":"address","nodeType":"ElementaryTypeName","src":"8685:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1304,"length":null,"nodeType":"ArrayTypeName","src":"8685:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1307,"mutability":"mutable","name":"_to","nodeType":"VariableDeclaration","overrides":null,"scope":1415,"src":"8708:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1306,"name":"address","nodeType":"ElementaryTypeName","src":"8708:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"8661:59:3"},"returnParameters":{"id":1309,"nodeType":"ParameterList","parameters":[],"src":"8738:0:3"},"scope":2502,"src":"8647:731:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[2757],"body":{"id":1486,"nodeType":"Block","src":"9631:378:3","statements":[{"expression":{"argumentTypes":null,"id":1443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1436,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"9642:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1439,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"9682:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1440,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"9691:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1441,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"9701:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"argumentTypes":null,"id":1437,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9652:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsOut","nodeType":"MemberAccess","referencedDeclaration":3390,"src":"9652:29:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":1442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9652:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"9642:64:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1444,"nodeType":"ExpressionStatement","src":"9642:64:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1446,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"9725:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1451,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1447,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"9733:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9733:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9750:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9733:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9725:27:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":1452,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"9756:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9725:43:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54","id":1454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9770:44:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":1445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9717:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9717:98:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1456,"nodeType":"ExpressionStatement","src":"9717:98:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1460,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"9872:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1462,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9877:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9872:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9881:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9881:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1467,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"9917:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1468,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"9926:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1470,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9931:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9926:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1471,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"9935:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1473,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":1472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9940:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9935:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1465,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9893:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"9893:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":1474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9893:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1475,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"9945:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1477,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9953:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9945:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1457,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"9826:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":1459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":438,"src":"9826:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":1478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9826:140:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1479,"nodeType":"ExpressionStatement","src":"9826:140:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1481,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"9983:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":1482,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"9992:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":1483,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1424,"src":"9998:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1480,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1415,"src":"9977:5:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256[] memory,address[] memory,address)"}},"id":1484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9977:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1485,"nodeType":"ExpressionStatement","src":"9977:24:3"}]},"documentation":null,"functionSelector":"38ed1739","id":1487,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1430,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1426,"src":"9589:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1431,"modifierName":{"argumentTypes":null,"id":1429,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"9582:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"9582:16:3"}],"name":"swapExactTokensForTokens","nodeType":"FunctionDefinition","overrides":{"id":1428,"nodeType":"OverrideSpecifier","overrides":[],"src":"9573:8:3"},"parameters":{"id":1427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1417,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":1487,"src":"9428:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1416,"name":"uint","nodeType":"ElementaryTypeName","src":"9428:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1419,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":1487,"src":"9452:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1418,"name":"uint","nodeType":"ElementaryTypeName","src":"9452:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1422,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":1487,"src":"9480:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1420,"name":"address","nodeType":"ElementaryTypeName","src":"9480:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1421,"length":null,"nodeType":"ArrayTypeName","src":"9480:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1424,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1487,"src":"9514:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1423,"name":"address","nodeType":"ElementaryTypeName","src":"9514:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1426,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":1487,"src":"9535:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1425,"name":"uint","nodeType":"ElementaryTypeName","src":"9535:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9417:138:3"},"returnParameters":{"id":1435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1434,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":1487,"src":"9608:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1432,"name":"uint","nodeType":"ElementaryTypeName","src":"9608:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1433,"length":null,"nodeType":"ArrayTypeName","src":"9608:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"9607:23:3"},"scope":2502,"src":"9384:625:3","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[2774],"body":{"id":1555,"nodeType":"Block","src":"10262:356:3","statements":[{"expression":{"argumentTypes":null,"id":1515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1508,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1506,"src":"10273:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1511,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"10312:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1512,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1489,"src":"10321:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1513,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1494,"src":"10332:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"argumentTypes":null,"id":1509,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"10283:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsIn","nodeType":"MemberAccess","referencedDeclaration":3475,"src":"10283:28:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":1514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10283:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"10273:64:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1516,"nodeType":"ExpressionStatement","src":"10273:64:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1518,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1506,"src":"10356:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1520,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10364:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10356:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":1521,"name":"amountInMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1491,"src":"10370:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10356:25:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a204558434553534956455f494e5055545f414d4f554e54","id":1523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10383:40:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_770facb21ba6c65369bbce91f6418720065aa92fa57c6c25b132104f38715764","typeString":"literal_string \"PangolinRouter: EXCESSIVE_INPUT_AMOUNT\""},"value":"PangolinRouter: EXCESSIVE_INPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_770facb21ba6c65369bbce91f6418720065aa92fa57c6c25b132104f38715764","typeString":"literal_string \"PangolinRouter: EXCESSIVE_INPUT_AMOUNT\""}],"id":1517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10348:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10348:76:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1525,"nodeType":"ExpressionStatement","src":"10348:76:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1529,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1494,"src":"10481:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1531,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10486:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10481:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1532,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10490:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10490:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1536,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"10526:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1537,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1494,"src":"10535:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1539,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10540:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10535:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1540,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1494,"src":"10544:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1542,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":1541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10549:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10544:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1534,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"10502:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"10502:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":1543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10502:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1544,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1506,"src":"10554:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1546,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10562:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10554:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1526,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"10435:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":1528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":438,"src":"10435:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":1547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10435:140:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1548,"nodeType":"ExpressionStatement","src":"10435:140:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1550,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1506,"src":"10592:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":1551,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1494,"src":"10601:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":1552,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1496,"src":"10607:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1549,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1415,"src":"10586:5:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256[] memory,address[] memory,address)"}},"id":1553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10586:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1554,"nodeType":"ExpressionStatement","src":"10586:24:3"}]},"documentation":null,"functionSelector":"8803dbee","id":1556,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1502,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1498,"src":"10220:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1503,"modifierName":{"argumentTypes":null,"id":1501,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"10213:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"10213:16:3"}],"name":"swapTokensForExactTokens","nodeType":"FunctionDefinition","overrides":{"id":1500,"nodeType":"OverrideSpecifier","overrides":[],"src":"10204:8:3"},"parameters":{"id":1499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1489,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":1556,"src":"10059:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1488,"name":"uint","nodeType":"ElementaryTypeName","src":"10059:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1491,"mutability":"mutable","name":"amountInMax","nodeType":"VariableDeclaration","overrides":null,"scope":1556,"src":"10084:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1490,"name":"uint","nodeType":"ElementaryTypeName","src":"10084:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1494,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":1556,"src":"10111:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1492,"name":"address","nodeType":"ElementaryTypeName","src":"10111:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1493,"length":null,"nodeType":"ArrayTypeName","src":"10111:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1496,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1556,"src":"10145:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1495,"name":"address","nodeType":"ElementaryTypeName","src":"10145:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1498,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":1556,"src":"10166:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1497,"name":"uint","nodeType":"ElementaryTypeName","src":"10166:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10048:138:3"},"returnParameters":{"id":1507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1506,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":1556,"src":"10239:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1504,"name":"uint","nodeType":"ElementaryTypeName","src":"10239:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1505,"length":null,"nodeType":"ArrayTypeName","src":"10239:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"10238:23:3"},"scope":2502,"src":"10015:603:3","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[2789],"body":{"id":1643,"nodeType":"Block","src":"10869:454:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1576,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"10888:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1578,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10893:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10888:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1579,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"10899:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10888:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e56414c49445f50415448","id":1581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10906:30:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""},"value":"PangolinRouter: INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""}],"id":1575,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10880:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10880:57:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1583,"nodeType":"ExpressionStatement","src":"10880:57:3"},{"expression":{"argumentTypes":null,"id":1592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1584,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"10948:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1587,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"10988:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1588,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10997:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10997:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1590,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"11008:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"argumentTypes":null,"id":1585,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"10958:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsOut","nodeType":"MemberAccess","referencedDeclaration":3390,"src":"10958:29:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":1591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10958:55:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"10948:65:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1593,"nodeType":"ExpressionStatement","src":"10948:65:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1595,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"11032:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1600,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1596,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"11040:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11040:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11057:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11040:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11032:27:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":1601,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1558,"src":"11063:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11032:43:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54","id":1603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11077:44:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":1594,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11024:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11024:98:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1605,"nodeType":"ExpressionStatement","src":"11024:98:3"},{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1607,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"11140:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1606,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"11133:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11133:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":1609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":2981,"src":"11133:21:3","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":1613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1610,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"11162:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1612,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11170:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11162:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"11133:40:3","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":1614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11133:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1615,"nodeType":"ExpressionStatement","src":"11133:42:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1623,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"11240:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1624,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"11249:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1626,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11254:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11249:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1627,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"11258:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1629,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":1628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11263:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11258:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1621,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"11216:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"11216:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":1630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11216:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1631,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"11268:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1633,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11276:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11268:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1618,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"11200:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1617,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"11193:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":1619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11193:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":1620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":2990,"src":"11193:22:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11193:86:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1616,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"11186:6:3","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11186:94:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1636,"nodeType":"ExpressionStatement","src":"11186:94:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1638,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"11297:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":1639,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"11306:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":1640,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1563,"src":"11312:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1637,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1415,"src":"11291:5:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256[] memory,address[] memory,address)"}},"id":1641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11291:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1642,"nodeType":"ExpressionStatement","src":"11291:24:3"}]},"documentation":null,"functionSelector":"a2a1623d","id":1644,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1569,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1565,"src":"10813:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1570,"modifierName":{"argumentTypes":null,"id":1568,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"10806:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"10806:16:3"}],"name":"swapExactAVAXForTokens","nodeType":"FunctionDefinition","overrides":{"id":1567,"nodeType":"OverrideSpecifier","overrides":[],"src":"10771:8:3"},"parameters":{"id":1566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1558,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":1644,"src":"10656:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1557,"name":"uint","nodeType":"ElementaryTypeName","src":"10656:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1561,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":1644,"src":"10675:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1559,"name":"address","nodeType":"ElementaryTypeName","src":"10675:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1560,"length":null,"nodeType":"ArrayTypeName","src":"10675:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1563,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1644,"src":"10700:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1562,"name":"address","nodeType":"ElementaryTypeName","src":"10700:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1565,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":1644,"src":"10712:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1564,"name":"uint","nodeType":"ElementaryTypeName","src":"10712:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10655:71:3"},"returnParameters":{"id":1574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1573,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":1644,"src":"10841:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1571,"name":"uint","nodeType":"ElementaryTypeName","src":"10841:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1572,"length":null,"nodeType":"ArrayTypeName","src":"10841:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"10840:23:3"},"scope":2502,"src":"10624:699:3","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[2806],"body":{"id":1751,"nodeType":"Block","src":"11572:586:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1666,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1651,"src":"11591:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1671,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1667,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1651,"src":"11596:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11596:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11610:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11596:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11591:21:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1672,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"11616:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11591:30:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e56414c49445f50415448","id":1674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11623:30:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""},"value":"PangolinRouter: INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""}],"id":1665,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11583:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11583:71:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1676,"nodeType":"ExpressionStatement","src":"11583:71:3"},{"expression":{"argumentTypes":null,"id":1684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1677,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"11665:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1680,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"11704:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1681,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1646,"src":"11713:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1682,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1651,"src":"11724:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"argumentTypes":null,"id":1678,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"11675:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsIn","nodeType":"MemberAccess","referencedDeclaration":3475,"src":"11675:28:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":1683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11675:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"11665:64:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1685,"nodeType":"ExpressionStatement","src":"11665:64:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1687,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"11748:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1689,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11756:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11748:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":1690,"name":"amountInMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1648,"src":"11762:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11748:25:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a204558434553534956455f494e5055545f414d4f554e54","id":1692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11775:40:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_770facb21ba6c65369bbce91f6418720065aa92fa57c6c25b132104f38715764","typeString":"literal_string \"PangolinRouter: EXCESSIVE_INPUT_AMOUNT\""},"value":"PangolinRouter: EXCESSIVE_INPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_770facb21ba6c65369bbce91f6418720065aa92fa57c6c25b132104f38715764","typeString":"literal_string \"PangolinRouter: EXCESSIVE_INPUT_AMOUNT\""}],"id":1686,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11740:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11740:76:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1694,"nodeType":"ExpressionStatement","src":"11740:76:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1698,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1651,"src":"11873:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1700,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11878:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11873:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11882:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11882:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1705,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"11918:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1706,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1651,"src":"11927:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1708,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11932:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11927:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1709,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1651,"src":"11936:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1711,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":1710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11941:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11936:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1703,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"11894:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"11894:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":1712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11894:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1713,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"11946:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1715,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11954:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11946:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1695,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"11827:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":1697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":438,"src":"11827:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":1716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11827:140:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1717,"nodeType":"ExpressionStatement","src":"11827:140:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1719,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"11984:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":1720,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1651,"src":"11993:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1723,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12007:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}],"id":1722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11999:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1721,"name":"address","nodeType":"ElementaryTypeName","src":"11999:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11999:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1718,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1415,"src":"11978:5:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256[] memory,address[] memory,address)"}},"id":1725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11978:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1726,"nodeType":"ExpressionStatement","src":"11978:35:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1731,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"12047:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1736,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1732,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"12055:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12055:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12072:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12055:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12047:27:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1728,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"12031:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1727,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"12024:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":1729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12024:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":3002,"src":"12024:22:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":1737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12024:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1738,"nodeType":"ExpressionStatement","src":"12024:51:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1742,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1653,"src":"12118:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1743,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"12122:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1748,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1744,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"12130:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12130:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12147:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12130:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12122:27:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1739,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"12086:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":1741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferAVAX","nodeType":"MemberAccess","referencedDeclaration":463,"src":"12086:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12086:64:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1750,"nodeType":"ExpressionStatement","src":"12086:64:3"}]},"documentation":null,"functionSelector":"7a42416a","id":1752,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1659,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"11516:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1660,"modifierName":{"argumentTypes":null,"id":1658,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"11509:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"11509:16:3"}],"name":"swapTokensForExactAVAX","nodeType":"FunctionDefinition","overrides":{"id":1657,"nodeType":"OverrideSpecifier","overrides":[],"src":"11491:8:3"},"parameters":{"id":1656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1646,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":1752,"src":"11361:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1645,"name":"uint","nodeType":"ElementaryTypeName","src":"11361:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1648,"mutability":"mutable","name":"amountInMax","nodeType":"VariableDeclaration","overrides":null,"scope":1752,"src":"11377:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1647,"name":"uint","nodeType":"ElementaryTypeName","src":"11377:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1651,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":1752,"src":"11395:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1649,"name":"address","nodeType":"ElementaryTypeName","src":"11395:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1650,"length":null,"nodeType":"ArrayTypeName","src":"11395:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1653,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1752,"src":"11420:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1652,"name":"address","nodeType":"ElementaryTypeName","src":"11420:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1655,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":1752,"src":"11432:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1654,"name":"uint","nodeType":"ElementaryTypeName","src":"11432:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11360:86:3"},"returnParameters":{"id":1664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1663,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":1752,"src":"11544:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1661,"name":"uint","nodeType":"ElementaryTypeName","src":"11544:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1662,"length":null,"nodeType":"ArrayTypeName","src":"11544:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"11543:23:3"},"scope":2502,"src":"11329:829:3","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[2823],"body":{"id":1862,"nodeType":"Block","src":"12407:608:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1774,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"12426:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1779,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1775,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"12431:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12431:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12445:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12431:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12426:21:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1780,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"12451:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12426:30:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e56414c49445f50415448","id":1782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12458:30:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""},"value":"PangolinRouter: INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""}],"id":1773,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12418:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12418:71:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1784,"nodeType":"ExpressionStatement","src":"12418:71:3"},{"expression":{"argumentTypes":null,"id":1792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1785,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"12500:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1788,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"12540:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1789,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1754,"src":"12549:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1790,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"12559:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"argumentTypes":null,"id":1786,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"12510:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsOut","nodeType":"MemberAccess","referencedDeclaration":3390,"src":"12510:29:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":1791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12510:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"12500:64:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1793,"nodeType":"ExpressionStatement","src":"12500:64:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1795,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"12583:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1800,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1796,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"12591:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12591:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12608:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12591:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12583:27:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":1801,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1756,"src":"12614:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12583:43:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54","id":1803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12628:44:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":1794,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12575:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12575:98:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1805,"nodeType":"ExpressionStatement","src":"12575:98:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1809,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"12730:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1811,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12735:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12730:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1812,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12739:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12739:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1816,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"12775:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1817,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"12784:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1819,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12789:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12784:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1820,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"12793:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1822,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":1821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12798:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12793:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1814,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"12751:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"12751:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":1823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12751:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1824,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"12803:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1826,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12811:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12803:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1806,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"12684:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":1808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":438,"src":"12684:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":1827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12684:140:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1828,"nodeType":"ExpressionStatement","src":"12684:140:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1830,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"12841:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":1831,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"12850:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1834,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12864:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}],"id":1833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12856:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1832,"name":"address","nodeType":"ElementaryTypeName","src":"12856:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12856:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1829,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1415,"src":"12835:5:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256[] memory,address[] memory,address)"}},"id":1836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12835:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1837,"nodeType":"ExpressionStatement","src":"12835:35:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1842,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"12904:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1847,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1843,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"12912:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12912:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12929:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12912:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12904:27:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1839,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"12888:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1838,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"12881:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12881:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":3002,"src":"12881:22:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":1848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12881:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1849,"nodeType":"ExpressionStatement","src":"12881:51:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1853,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"12975:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1854,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"12979:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1859,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1855,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"12987:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12987:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13004:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12987:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12979:27:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1850,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"12943:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":1852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferAVAX","nodeType":"MemberAccess","referencedDeclaration":463,"src":"12943:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12943:64:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1861,"nodeType":"ExpressionStatement","src":"12943:64:3"}]},"documentation":null,"functionSelector":"676528d1","id":1863,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1767,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"12351:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1768,"modifierName":{"argumentTypes":null,"id":1766,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"12344:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"12344:16:3"}],"name":"swapExactTokensForAVAX","nodeType":"FunctionDefinition","overrides":{"id":1765,"nodeType":"OverrideSpecifier","overrides":[],"src":"12326:8:3"},"parameters":{"id":1764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1754,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":1863,"src":"12196:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1753,"name":"uint","nodeType":"ElementaryTypeName","src":"12196:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1756,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":1863,"src":"12211:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1755,"name":"uint","nodeType":"ElementaryTypeName","src":"12211:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1759,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":1863,"src":"12230:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1757,"name":"address","nodeType":"ElementaryTypeName","src":"12230:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1758,"length":null,"nodeType":"ArrayTypeName","src":"12230:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1761,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1863,"src":"12255:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1760,"name":"address","nodeType":"ElementaryTypeName","src":"12255:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1763,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":1863,"src":"12267:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1762,"name":"uint","nodeType":"ElementaryTypeName","src":"12267:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"12195:86:3"},"returnParameters":{"id":1772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1771,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":1863,"src":"12379:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1769,"name":"uint","nodeType":"ElementaryTypeName","src":"12379:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1770,"length":null,"nodeType":"ArrayTypeName","src":"12379:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"12378:23:3"},"scope":2502,"src":"12164:851:3","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[2838],"body":{"id":1967,"nodeType":"Block","src":"13263:572:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1883,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"13282:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1885,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13287:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13282:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1886,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"13293:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13282:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e56414c49445f50415448","id":1888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13300:30:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""},"value":"PangolinRouter: INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""}],"id":1882,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13274:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13274:57:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1890,"nodeType":"ExpressionStatement","src":"13274:57:3"},{"expression":{"argumentTypes":null,"id":1898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1891,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"13342:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1894,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"13381:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1895,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1865,"src":"13390:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1896,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"13401:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"expression":{"argumentTypes":null,"id":1892,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"13352:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsIn","nodeType":"MemberAccess","referencedDeclaration":3475,"src":"13352:28:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":1897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13352:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"13342:64:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1899,"nodeType":"ExpressionStatement","src":"13342:64:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1901,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"13425:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1903,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13433:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13425:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1904,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13439:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13439:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13425:23:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a204558434553534956455f494e5055545f414d4f554e54","id":1907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13450:40:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_770facb21ba6c65369bbce91f6418720065aa92fa57c6c25b132104f38715764","typeString":"literal_string \"PangolinRouter: EXCESSIVE_INPUT_AMOUNT\""},"value":"PangolinRouter: EXCESSIVE_INPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_770facb21ba6c65369bbce91f6418720065aa92fa57c6c25b132104f38715764","typeString":"literal_string \"PangolinRouter: EXCESSIVE_INPUT_AMOUNT\""}],"id":1900,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13417:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13417:74:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1909,"nodeType":"ExpressionStatement","src":"13417:74:3"},{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1911,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"13509:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1910,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"13502:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13502:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":1913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":2981,"src":"13502:21:3","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":1917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1914,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"13531:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1916,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13539:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13531:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"13502:40:3","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13502:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1919,"nodeType":"ExpressionStatement","src":"13502:42:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1927,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"13609:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1928,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"13618:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1930,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13623:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13618:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1931,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"13627:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1933,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13632:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13627:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1925,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"13585:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":1926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"13585:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":1934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13585:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1935,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"13637:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1937,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13645:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13637:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1922,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"13569:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1921,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"13562:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":1923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13562:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":1924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":2990,"src":"13562:22:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13562:86:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1920,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"13555:6:3","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13555:94:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1940,"nodeType":"ExpressionStatement","src":"13555:94:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1942,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"13666:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":1943,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"13675:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":1944,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1870,"src":"13681:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1941,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1415,"src":"13660:5:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256[] memory,address[] memory,address)"}},"id":1945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13660:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1946,"nodeType":"ExpressionStatement","src":"13660:24:3"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1947,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13736:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13736:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1949,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"13748:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1951,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13756:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13748:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13736:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1966,"nodeType":"IfStatement","src":"13732:95:3","trueBody":{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1956,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13792:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13792:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1958,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13804:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13804:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1960,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"13816:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1962,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":1961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13824:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13816:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13804:22:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1953,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"13760:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":1955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferAVAX","nodeType":"MemberAccess","referencedDeclaration":463,"src":"13760:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13760:67:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1965,"nodeType":"ExpressionStatement","src":"13760:67:3"}}]},"documentation":null,"functionSelector":"8a657e67","id":1968,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1876,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1872,"src":"13207:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1877,"modifierName":{"argumentTypes":null,"id":1875,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"13200:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"13200:16:3"}],"name":"swapAVAXForExactTokens","nodeType":"FunctionDefinition","overrides":{"id":1874,"nodeType":"OverrideSpecifier","overrides":[],"src":"13165:8:3"},"parameters":{"id":1873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1865,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":1968,"src":"13053:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1864,"name":"uint","nodeType":"ElementaryTypeName","src":"13053:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1868,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":1968,"src":"13069:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1866,"name":"address","nodeType":"ElementaryTypeName","src":"13069:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1867,"length":null,"nodeType":"ArrayTypeName","src":"13069:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1870,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1968,"src":"13094:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1869,"name":"address","nodeType":"ElementaryTypeName","src":"13094:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1872,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":1968,"src":"13106:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1871,"name":"uint","nodeType":"ElementaryTypeName","src":"13106:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13052:68:3"},"returnParameters":{"id":1881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1880,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":1968,"src":"13235:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1878,"name":"uint","nodeType":"ElementaryTypeName","src":"13235:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1879,"length":null,"nodeType":"ArrayTypeName","src":"13235:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"13234:23:3"},"scope":2502,"src":"13021:814:3","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":2131,"nodeType":"Block","src":"14079:1111:3","statements":[{"body":{"id":2129,"nodeType":"Block","src":"14129:1054:3","statements":[{"assignments":[1989,1991],"declarations":[{"constant":false,"id":1989,"mutability":"mutable","name":"input","nodeType":"VariableDeclaration","overrides":null,"scope":2129,"src":"14145:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1988,"name":"address","nodeType":"ElementaryTypeName","src":"14145:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1991,"mutability":"mutable","name":"output","nodeType":"VariableDeclaration","overrides":null,"scope":2129,"src":"14160:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1990,"name":"address","nodeType":"ElementaryTypeName","src":"14160:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":2001,"initialValue":{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1992,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1971,"src":"14179:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1994,"indexExpression":{"argumentTypes":null,"id":1993,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1977,"src":"14184:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14179:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1995,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1971,"src":"14188:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1999,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1996,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1977,"src":"14193:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14197:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14193:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14188:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2000,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14178:22:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"14144:56:3"},{"assignments":[2003,null],"declarations":[{"constant":false,"id":2003,"mutability":"mutable","name":"token0","nodeType":"VariableDeclaration","overrides":null,"scope":2129,"src":"14216:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2002,"name":"address","nodeType":"ElementaryTypeName","src":"14216:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},null],"id":2009,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2006,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1989,"src":"14262:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2007,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1991,"src":"14269:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":2004,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"14235:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sortTokens","nodeType":"MemberAccess","referencedDeclaration":3055,"src":"14235:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$","typeString":"function (address,address) pure returns (address,address)"}},"id":2008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14235:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"14215:61:3"},{"assignments":[2011],"declarations":[{"constant":false,"id":2011,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":2129,"src":"14291:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"},"typeName":{"contractScope":null,"id":2010,"name":"IPangolinPair","nodeType":"UserDefinedTypeName","referencedDeclaration":304,"src":"14291:13:3","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"value":null,"visibility":"internal"}],"id":2020,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2015,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"14350:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2016,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1989,"src":"14359:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2017,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1991,"src":"14366:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":2013,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"14326:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"14326:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":2018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14326:47:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2012,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"14312:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$304_$","typeString":"type(contract IPangolinPair)"}},"id":2019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14312:62:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"nodeType":"VariableDeclarationStatement","src":"14291:83:3"},{"assignments":[2022],"declarations":[{"constant":false,"id":2022,"mutability":"mutable","name":"amountInput","nodeType":"VariableDeclaration","overrides":null,"scope":2129,"src":"14389:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2021,"name":"uint","nodeType":"ElementaryTypeName","src":"14389:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2023,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"14389:16:3"},{"assignments":[2025],"declarations":[{"constant":false,"id":2025,"mutability":"mutable","name":"amountOutput","nodeType":"VariableDeclaration","overrides":null,"scope":2129,"src":"14420:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2024,"name":"uint","nodeType":"ElementaryTypeName","src":"14420:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2026,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"14420:17:3"},{"id":2074,"nodeType":"Block","src":"14452:426:3","statements":[{"assignments":[2028,2030,null],"declarations":[{"constant":false,"id":2028,"mutability":"mutable","name":"reserve0","nodeType":"VariableDeclaration","overrides":null,"scope":2074,"src":"14508:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2027,"name":"uint","nodeType":"ElementaryTypeName","src":"14508:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2030,"mutability":"mutable","name":"reserve1","nodeType":"VariableDeclaration","overrides":null,"scope":2074,"src":"14523:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2029,"name":"uint","nodeType":"ElementaryTypeName","src":"14523:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},null],"id":2034,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":2031,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2011,"src":"14541:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"id":2032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getReserves","nodeType":"MemberAccess","referencedDeclaration":246,"src":"14541:16:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"function () view external returns (uint112,uint112,uint32)"}},"id":2033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14541:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"tuple(uint112,uint112,uint32)"}},"nodeType":"VariableDeclarationStatement","src":"14507:52:3"},{"assignments":[2036,2038],"declarations":[{"constant":false,"id":2036,"mutability":"mutable","name":"reserveInput","nodeType":"VariableDeclaration","overrides":null,"scope":2074,"src":"14575:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2035,"name":"uint","nodeType":"ElementaryTypeName","src":"14575:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2038,"mutability":"mutable","name":"reserveOutput","nodeType":"VariableDeclaration","overrides":null,"scope":2074,"src":"14594:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2037,"name":"uint","nodeType":"ElementaryTypeName","src":"14594:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2049,"initialValue":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2039,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1989,"src":"14616:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2040,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"14625:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14616:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":2045,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"14658:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2046,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2028,"src":"14668:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2047,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14657:20:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":2048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14616:61:3","trueExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":2042,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2028,"src":"14635:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2043,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"14645:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2044,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14634:20:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14574:103:3"},{"expression":{"argumentTypes":null,"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2050,"name":"amountInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"14692:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2061,"name":"reserveInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"14749:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2057,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2011,"src":"14738:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}],"id":2056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14730:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2055,"name":"address","nodeType":"ElementaryTypeName","src":"14730:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14730:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2052,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1989,"src":"14713:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2051,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"14706:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$2586_$","typeString":"type(contract IERC20)"}},"id":2053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14706:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$2586","typeString":"contract IERC20"}},"id":2054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":2547,"src":"14706:23:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14706:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"14706:42:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14706:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14692:70:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2064,"nodeType":"ExpressionStatement","src":"14692:70:3"},{"expression":{"argumentTypes":null,"id":2072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2065,"name":"amountOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"14777:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2068,"name":"amountInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"14821:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2069,"name":"reserveInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"14834:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2070,"name":"reserveOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2038,"src":"14848:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2066,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"14792:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountOut","nodeType":"MemberAccess","referencedDeclaration":3249,"src":"14792:28:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14792:70:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14777:85:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2073,"nodeType":"ExpressionStatement","src":"14777:85:3"}]},{"assignments":[2076,2078],"declarations":[{"constant":false,"id":2076,"mutability":"mutable","name":"amount0Out","nodeType":"VariableDeclaration","overrides":null,"scope":2129,"src":"14893:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2075,"name":"uint","nodeType":"ElementaryTypeName","src":"14893:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2078,"mutability":"mutable","name":"amount1Out","nodeType":"VariableDeclaration","overrides":null,"scope":2129,"src":"14910:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2077,"name":"uint","nodeType":"ElementaryTypeName","src":"14910:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2095,"initialValue":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2079,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1989,"src":"14929:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2080,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"14938:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14929:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":2088,"name":"amountOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"14974:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14993:1:3","subdenomination":null,"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":2090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14988:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2089,"name":"uint","nodeType":"ElementaryTypeName","src":"14988:4:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14988:7:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2093,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14973:23:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":2094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14929:67:3","trueExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14953:1:3","subdenomination":null,"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":2083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14948:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2082,"name":"uint","nodeType":"ElementaryTypeName","src":"14948:4:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14948:7:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2086,"name":"amountOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"14957:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2087,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14947:23:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14892:104:3"},{"assignments":[2097],"declarations":[{"constant":false,"id":2097,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2129,"src":"15011:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2096,"name":"address","nodeType":"ElementaryTypeName","src":"15011:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":2116,"initialValue":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2098,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1977,"src":"15024:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2099,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1971,"src":"15028:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15028:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"32","id":2101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15042:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15028:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15024:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"id":2114,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1973,"src":"15102:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"15024:81:3","trueExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2106,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"15070:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2107,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1991,"src":"15079:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2108,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1971,"src":"15087:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2112,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1977,"src":"15092:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"32","id":2110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15096:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15092:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15087:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":2104,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"15046:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"15046:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15046:53:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15011:94:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2120,"name":"amount0Out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2076,"src":"15130:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2121,"name":"amount1Out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2078,"src":"15142:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2122,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2097,"src":"15154:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15168:1:3","subdenomination":null,"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":2124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15158:9:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2123,"name":"bytes","nodeType":"ElementaryTypeName","src":"15162:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15158:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":2117,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2011,"src":"15120:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"id":2119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":288,"src":"15120:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,address,bytes memory) external"}},"id":2127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15120:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2128,"nodeType":"ExpressionStatement","src":"15120:51:3"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1979,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1977,"src":"14103:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1980,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1971,"src":"14107:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14107:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14121:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14107:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14103:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2130,"initializationExpression":{"assignments":[1977],"declarations":[{"constant":false,"id":1977,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","overrides":null,"scope":2130,"src":"14095:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1976,"name":"uint","nodeType":"ElementaryTypeName","src":"14095:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1978,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"14095:6:3"},"loopExpression":{"expression":{"argumentTypes":null,"id":1986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14124:3:3","subExpression":{"argumentTypes":null,"id":1985,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1977,"src":"14124:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1987,"nodeType":"ExpressionStatement","src":"14124:3:3"},"nodeType":"ForStatement","src":"14090:1093:3"}]},"documentation":null,"id":2132,"implemented":true,"kind":"function","modifiers":[],"name":"_swapSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":1974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1971,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2132,"src":"14026:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1969,"name":"address","nodeType":"ElementaryTypeName","src":"14026:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1970,"length":null,"nodeType":"ArrayTypeName","src":"14026:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1973,"mutability":"mutable","name":"_to","nodeType":"VariableDeclaration","overrides":null,"scope":2132,"src":"14049:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1972,"name":"address","nodeType":"ElementaryTypeName","src":"14049:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"14025:36:3"},"returnParameters":{"id":1975,"nodeType":"ParameterList","parameters":[],"src":"14079:0:3"},"scope":2502,"src":"13982:1208:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[2949],"body":{"id":2210,"nodeType":"Block","src":"15440:468:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2153,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"15497:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2155,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":2154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15502:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15497:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2156,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15506:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15506:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2160,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"15542:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2161,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"15551:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2163,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":2162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15556:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15551:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2164,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"15560:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2166,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":2165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15565:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15560:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":2158,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"15518:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"15518:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":2167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15518:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2168,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2134,"src":"15570:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2150,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"15451:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":2152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":438,"src":"15451:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15451:138:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2170,"nodeType":"ExpressionStatement","src":"15451:138:3"},{"assignments":[2172],"declarations":[{"constant":false,"id":2172,"mutability":"mutable","name":"balanceBefore","nodeType":"VariableDeclaration","overrides":null,"scope":2210,"src":"15600:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2171,"name":"uint","nodeType":"ElementaryTypeName","src":"15600:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2184,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2182,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"15661:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2174,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"15628:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2179,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2175,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"15633:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15633:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":2177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15647:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15633:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15628:21:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2173,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"15621:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$2586_$","typeString":"type(contract IERC20)"}},"id":2180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15621:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$2586","typeString":"contract IERC20"}},"id":2181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":2547,"src":"15621:39:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15621:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15600:64:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2186,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"15710:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":2187,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"15716:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2185,"name":"_swapSupportingFeeOnTransferTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"15675:34:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (address[] memory,address)"}},"id":2188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15675:44:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2189,"nodeType":"ExpressionStatement","src":"15675:44:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2203,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2172,"src":"15800:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2200,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"15792:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2192,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"15759:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2197,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2193,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"15764:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15764:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":2195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15778:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15764:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15759:21:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2191,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"15752:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$2586_$","typeString":"type(contract IERC20)"}},"id":2198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15752:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$2586","typeString":"contract IERC20"}},"id":2199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":2547,"src":"15752:39:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15752:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"15752:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15752:62:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2205,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2136,"src":"15818:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15752:78:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54","id":2207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15845:44:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":2190,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15730:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15730:170:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2209,"nodeType":"ExpressionStatement","src":"15730:170:3"}]},"documentation":null,"functionSelector":"5c11d795","id":2211,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":2147,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"15430:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2148,"modifierName":{"argumentTypes":null,"id":2146,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"15423:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"15423:16:3"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","overrides":{"id":2145,"nodeType":"OverrideSpecifier","overrides":[],"src":"15414:8:3"},"parameters":{"id":2144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2134,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2211,"src":"15269:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2133,"name":"uint","nodeType":"ElementaryTypeName","src":"15269:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2136,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":2211,"src":"15293:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2135,"name":"uint","nodeType":"ElementaryTypeName","src":"15293:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2139,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2211,"src":"15321:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2137,"name":"address","nodeType":"ElementaryTypeName","src":"15321:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2138,"length":null,"nodeType":"ArrayTypeName","src":"15321:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2141,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2211,"src":"15355:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2140,"name":"address","nodeType":"ElementaryTypeName","src":"15355:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2143,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2211,"src":"15376:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2142,"name":"uint","nodeType":"ElementaryTypeName","src":"15376:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15258:138:3"},"returnParameters":{"id":2149,"nodeType":"ParameterList","parameters":[],"src":"15440:0:3"},"scope":2502,"src":"15196:712:3","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[2961],"body":{"id":2307,"nodeType":"Block","src":"16190:577:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2228,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"16209:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2230,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":2229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16214:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16209:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2231,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"16220:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16209:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e56414c49445f50415448","id":2233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16227:30:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""},"value":"PangolinRouter: INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""}],"id":2227,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16201:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16201:57:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2235,"nodeType":"ExpressionStatement","src":"16201:57:3"},{"assignments":[2237],"declarations":[{"constant":false,"id":2237,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2307,"src":"16269:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2236,"name":"uint","nodeType":"ElementaryTypeName","src":"16269:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2240,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2238,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16285:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16285:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16269:25:3"},{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2242,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"16312:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2241,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"16305:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":2243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16305:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":2244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":2981,"src":"16305:21:3","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":2246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"argumentTypes":null,"id":2245,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"16334:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"16305:38:3","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":2247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16305:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2248,"nodeType":"ExpressionStatement","src":"16305:40:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2256,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"16410:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2257,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"16419:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2259,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":2258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16424:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16419:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2260,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"16428:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2262,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":2261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16433:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16428:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":2254,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"16386:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"16386:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":2263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16386:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2264,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"16438:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2251,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"16370:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2250,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"16363:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":2252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16363:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":2253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":2990,"src":"16363:22:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16363:84:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2249,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"16356:6:3","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16356:92:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2267,"nodeType":"ExpressionStatement","src":"16356:92:3"},{"assignments":[2269],"declarations":[{"constant":false,"id":2269,"mutability":"mutable","name":"balanceBefore","nodeType":"VariableDeclaration","overrides":null,"scope":2307,"src":"16459:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2268,"name":"uint","nodeType":"ElementaryTypeName","src":"16459:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2281,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2279,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2218,"src":"16520:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2271,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"16487:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2276,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2272,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"16492:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16492:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":2274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16506:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16492:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16487:21:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2270,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"16480:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$2586_$","typeString":"type(contract IERC20)"}},"id":2277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16480:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$2586","typeString":"contract IERC20"}},"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":2547,"src":"16480:39:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16480:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16459:64:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2283,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"16569:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":2284,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2218,"src":"16575:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2282,"name":"_swapSupportingFeeOnTransferTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"16534:34:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (address[] memory,address)"}},"id":2285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16534:44:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2286,"nodeType":"ExpressionStatement","src":"16534:44:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2300,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2269,"src":"16659:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2297,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2218,"src":"16651:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2289,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"16618:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2294,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2290,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"16623:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16623:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":2292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16637:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16623:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16618:21:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2288,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"16611:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$2586_$","typeString":"type(contract IERC20)"}},"id":2295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16611:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$2586","typeString":"contract IERC20"}},"id":2296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":2547,"src":"16611:39:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16611:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"16611:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16611:62:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2302,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2213,"src":"16677:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16611:78:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54","id":2304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16704:44:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":2287,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16589:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16589:170:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2306,"nodeType":"ExpressionStatement","src":"16589:170:3"}]},"documentation":null,"functionSelector":"c57559dd","id":2308,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":2224,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"16175:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2225,"modifierName":{"argumentTypes":null,"id":2223,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"16168:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"16168:16:3"}],"name":"swapExactAVAXForTokensSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","overrides":{"id":2222,"nodeType":"OverrideSpecifier","overrides":[],"src":"16133:8:3"},"parameters":{"id":2221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2213,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":2308,"src":"15985:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2212,"name":"uint","nodeType":"ElementaryTypeName","src":"15985:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2216,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2308,"src":"16013:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2214,"name":"address","nodeType":"ElementaryTypeName","src":"16013:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2215,"length":null,"nodeType":"ArrayTypeName","src":"16013:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2218,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2308,"src":"16047:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2217,"name":"address","nodeType":"ElementaryTypeName","src":"16047:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2220,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2308,"src":"16068:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2219,"name":"uint","nodeType":"ElementaryTypeName","src":"16068:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15974:114:3"},"returnParameters":{"id":2226,"nodeType":"ParameterList","parameters":[],"src":"16190:0:3"},"scope":2502,"src":"15914:853:3","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[2975],"body":{"id":2400,"nodeType":"Block","src":"17056:563:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2327,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2315,"src":"17075:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2332,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2328,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2315,"src":"17080:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17080:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":2330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17094:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17080:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17075:21:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2333,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"17100:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17075:30:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e56414c49445f50415448","id":2335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17107:30:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""},"value":"PangolinRouter: INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e76f070a78bdd95206a2138ca980210dc503642ef4841b3949ea3bb528ec20a9","typeString":"literal_string \"PangolinRouter: INVALID_PATH\""}],"id":2326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17067:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17067:71:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2337,"nodeType":"ExpressionStatement","src":"17067:71:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2341,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2315,"src":"17195:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2343,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":2342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17200:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17195:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2344,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17204:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17204:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2348,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"17240:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2349,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2315,"src":"17249:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2351,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17254:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17249:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2352,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2315,"src":"17258:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":2354,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":2353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17263:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17258:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":2346,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"17216:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairFor","nodeType":"MemberAccess","referencedDeclaration":3100,"src":"17216:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":2355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17216:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2356,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2310,"src":"17268:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2338,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"17149:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":2340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":438,"src":"17149:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":2357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17149:138:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2358,"nodeType":"ExpressionStatement","src":"17149:138:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2360,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2315,"src":"17333:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2363,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17347:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}],"id":2362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17339:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2361,"name":"address","nodeType":"ElementaryTypeName","src":"17339:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17339:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":2359,"name":"_swapSupportingFeeOnTransferTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"17298:34:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (address[] memory,address)"}},"id":2365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17298:55:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2366,"nodeType":"ExpressionStatement","src":"17298:55:3"},{"assignments":[2368],"declarations":[{"constant":false,"id":2368,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":2400,"src":"17364:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2367,"name":"uint","nodeType":"ElementaryTypeName","src":"17364:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2378,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2375,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17413:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinRouter_$2502","typeString":"contract PangolinRouter"}],"id":2374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17405:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2373,"name":"address","nodeType":"ElementaryTypeName","src":"17405:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17405:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2370,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"17388:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2369,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"17381:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$2586_$","typeString":"type(contract IERC20)"}},"id":2371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17381:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$2586","typeString":"contract IERC20"}},"id":2372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":2547,"src":"17381:23:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17381:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17364:55:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2380,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2368,"src":"17438:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2381,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2312,"src":"17451:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17438:25:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54","id":2383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17465:44:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55875dc67cef25f6c06d8f4e3b84fe3ef0a4d4fedcc5c3d484dd344638f63325","typeString":"literal_string \"PangolinRouter: INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":2379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17430:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17430:80:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2385,"nodeType":"ExpressionStatement","src":"17430:80:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2390,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2368,"src":"17544:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2387,"name":"WAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"17528:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2386,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"17521:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$3003_$","typeString":"type(contract IWAVAX)"}},"id":2388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17521:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$3003","typeString":"contract IWAVAX"}},"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":3002,"src":"17521:22:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":2391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17521:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2392,"nodeType":"ExpressionStatement","src":"17521:33:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2396,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"17597:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2397,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2368,"src":"17601:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2393,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"17565:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$464_$","typeString":"type(library TransferHelper)"}},"id":2395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferAVAX","nodeType":"MemberAccess","referencedDeclaration":463,"src":"17565:31:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17565:46:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2399,"nodeType":"ExpressionStatement","src":"17565:46:3"}]},"documentation":null,"functionSelector":"762b1562","id":2401,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":2323,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2319,"src":"17041:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2324,"modifierName":{"argumentTypes":null,"id":2322,"name":"ensure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"17034:6:3","typeDescriptions":{"typeIdentifier":"t_modifier$_t_uint256_$","typeString":"modifier (uint256)"}},"nodeType":"ModifierInvocation","src":"17034:16:3"}],"name":"swapExactTokensForAVAXSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","overrides":{"id":2321,"nodeType":"OverrideSpecifier","overrides":[],"src":"17016:8:3"},"parameters":{"id":2320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2310,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2401,"src":"16844:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2309,"name":"uint","nodeType":"ElementaryTypeName","src":"16844:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2312,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":2401,"src":"16868:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2311,"name":"uint","nodeType":"ElementaryTypeName","src":"16868:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2315,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2401,"src":"16896:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2313,"name":"address","nodeType":"ElementaryTypeName","src":"16896:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2314,"length":null,"nodeType":"ArrayTypeName","src":"16896:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2317,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2401,"src":"16930:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2316,"name":"address","nodeType":"ElementaryTypeName","src":"16930:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2319,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2401,"src":"16951:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2318,"name":"uint","nodeType":"ElementaryTypeName","src":"16951:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16833:138:3"},"returnParameters":{"id":2325,"nodeType":"ParameterList","parameters":[],"src":"17056:0:3"},"scope":2502,"src":"16773:846:3","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[2849],"body":{"id":2420,"nodeType":"Block","src":"17774:76:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2415,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"17814:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2416,"name":"reserveA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"17823:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2417,"name":"reserveB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2407,"src":"17833:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2413,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"17792:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"quote","nodeType":"MemberAccess","referencedDeclaration":3189,"src":"17792:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17792:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2412,"id":2419,"nodeType":"Return","src":"17785:57:3"}]},"documentation":null,"functionSelector":"ad615dec","id":2421,"implemented":true,"kind":"function","modifiers":[],"name":"quote","nodeType":"FunctionDefinition","overrides":{"id":2409,"nodeType":"OverrideSpecifier","overrides":[],"src":"17742:8:3"},"parameters":{"id":2408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2403,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","overrides":null,"scope":2421,"src":"17678:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2402,"name":"uint","nodeType":"ElementaryTypeName","src":"17678:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2405,"mutability":"mutable","name":"reserveA","nodeType":"VariableDeclaration","overrides":null,"scope":2421,"src":"17692:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2404,"name":"uint","nodeType":"ElementaryTypeName","src":"17692:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2407,"mutability":"mutable","name":"reserveB","nodeType":"VariableDeclaration","overrides":null,"scope":2421,"src":"17707:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2406,"name":"uint","nodeType":"ElementaryTypeName","src":"17707:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"17677:44:3"},"returnParameters":{"id":2412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2411,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","overrides":null,"scope":2421,"src":"17760:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2410,"name":"uint","nodeType":"ElementaryTypeName","src":"17760:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"17759:14:3"},"scope":2502,"src":"17663:187:3","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[2860],"body":{"id":2440,"nodeType":"Block","src":"18032:87:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2435,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2423,"src":"18079:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2436,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2425,"src":"18089:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2437,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2427,"src":"18100:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2433,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"18050:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountOut","nodeType":"MemberAccess","referencedDeclaration":3249,"src":"18050:28:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18050:61:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2432,"id":2439,"nodeType":"Return","src":"18043:68:3"}]},"documentation":null,"functionSelector":"054d50d4","id":2441,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountOut","nodeType":"FunctionDefinition","overrides":{"id":2429,"nodeType":"OverrideSpecifier","overrides":[],"src":"17984:8:3"},"parameters":{"id":2428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2423,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2441,"src":"17880:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2422,"name":"uint","nodeType":"ElementaryTypeName","src":"17880:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2425,"mutability":"mutable","name":"reserveIn","nodeType":"VariableDeclaration","overrides":null,"scope":2441,"src":"17895:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2424,"name":"uint","nodeType":"ElementaryTypeName","src":"17895:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2427,"mutability":"mutable","name":"reserveOut","nodeType":"VariableDeclaration","overrides":null,"scope":2441,"src":"17911:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2426,"name":"uint","nodeType":"ElementaryTypeName","src":"17911:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"17879:48:3"},"returnParameters":{"id":2432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2431,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":2441,"src":"18011:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2430,"name":"uint","nodeType":"ElementaryTypeName","src":"18011:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"18010:16:3"},"scope":2502,"src":"17858:261:3","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[2871],"body":{"id":2460,"nodeType":"Block","src":"18300:87:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2455,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2443,"src":"18346:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2456,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2445,"src":"18357:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2457,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2447,"src":"18368:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2453,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"18318:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountIn","nodeType":"MemberAccess","referencedDeclaration":3309,"src":"18318:27:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18318:61:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2452,"id":2459,"nodeType":"Return","src":"18311:68:3"}]},"documentation":null,"functionSelector":"85f8c259","id":2461,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountIn","nodeType":"FunctionDefinition","overrides":{"id":2449,"nodeType":"OverrideSpecifier","overrides":[],"src":"18253:8:3"},"parameters":{"id":2448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2443,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":2461,"src":"18148:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2442,"name":"uint","nodeType":"ElementaryTypeName","src":"18148:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2445,"mutability":"mutable","name":"reserveIn","nodeType":"VariableDeclaration","overrides":null,"scope":2461,"src":"18164:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2444,"name":"uint","nodeType":"ElementaryTypeName","src":"18164:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2447,"mutability":"mutable","name":"reserveOut","nodeType":"VariableDeclaration","overrides":null,"scope":2461,"src":"18180:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2446,"name":"uint","nodeType":"ElementaryTypeName","src":"18180:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"18147:49:3"},"returnParameters":{"id":2452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2451,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2461,"src":"18280:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2450,"name":"uint","nodeType":"ElementaryTypeName","src":"18280:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"18279:15:3"},"scope":2502,"src":"18127:260:3","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[2882],"body":{"id":2480,"nodeType":"Block","src":"18567:80:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2475,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"18615:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2476,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"18624:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2477,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2466,"src":"18634:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"argumentTypes":null,"id":2473,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"18585:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsOut","nodeType":"MemberAccess","referencedDeclaration":3390,"src":"18585:29:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":2478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18585:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":2472,"id":2479,"nodeType":"Return","src":"18578:61:3"}]},"documentation":null,"functionSelector":"d06ca61f","id":2481,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountsOut","nodeType":"FunctionDefinition","overrides":{"id":2468,"nodeType":"OverrideSpecifier","overrides":[],"src":"18512:8:3"},"parameters":{"id":2467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2463,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2481,"src":"18418:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2462,"name":"uint","nodeType":"ElementaryTypeName","src":"18418:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2466,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2481,"src":"18433:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2464,"name":"address","nodeType":"ElementaryTypeName","src":"18433:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2465,"length":null,"nodeType":"ArrayTypeName","src":"18433:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"}],"src":"18417:38:3"},"returnParameters":{"id":2472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2471,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":2481,"src":"18539:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2469,"name":"uint","nodeType":"ElementaryTypeName","src":"18539:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2470,"length":null,"nodeType":"ArrayTypeName","src":"18539:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"18538:23:3"},"scope":2502,"src":"18395:252:3","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2893],"body":{"id":2500,"nodeType":"Block","src":"18827:80:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2495,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"18874:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2496,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"18883:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2497,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"18894:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"argumentTypes":null,"id":2493,"name":"PangolinLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"18845:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangolinLibrary_$3476_$","typeString":"type(library PangolinLibrary)"}},"id":2494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAmountsIn","nodeType":"MemberAccess","referencedDeclaration":3475,"src":"18845:28:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256,address[] memory) view returns (uint256[] memory)"}},"id":2498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18845:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":2492,"id":2499,"nodeType":"Return","src":"18838:61:3"}]},"documentation":null,"functionSelector":"1f00ca74","id":2501,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountsIn","nodeType":"FunctionDefinition","overrides":{"id":2488,"nodeType":"OverrideSpecifier","overrides":[],"src":"18772:8:3"},"parameters":{"id":2487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2483,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":2501,"src":"18677:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2482,"name":"uint","nodeType":"ElementaryTypeName","src":"18677:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2486,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2501,"src":"18693:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2484,"name":"address","nodeType":"ElementaryTypeName","src":"18693:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2485,"length":null,"nodeType":"ArrayTypeName","src":"18693:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"}],"src":"18676:39:3"},"returnParameters":{"id":2492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2491,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":2501,"src":"18799:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2489,"name":"uint","nodeType":"ElementaryTypeName","src":"18799:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2490,"length":null,"nodeType":"ArrayTypeName","src":"18799:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"18798:23:3"},"scope":2502,"src":"18655:252:3","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2503,"src":"340:18570:3"}],"src":"0:18912:3"},"id":3},"contracts/pangolin-periphery/interfaces/IERC20.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/interfaces/IERC20.sol","exportedSymbols":{"IERC20":[2586]},"id":2587,"nodeType":"SourceUnit","nodes":[{"id":2504,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:4"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":2586,"linearizedBaseContracts":[2586],"name":"IERC20","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":2512,"name":"Approval","nodeType":"EventDefinition","parameters":{"id":2511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2506,"indexed":true,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":2512,"src":"67:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2505,"name":"address","nodeType":"ElementaryTypeName","src":"67:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2508,"indexed":true,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":2512,"src":"90:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2507,"name":"address","nodeType":"ElementaryTypeName","src":"90:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2510,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":2512,"src":"115:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2509,"name":"uint","nodeType":"ElementaryTypeName","src":"115:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"66:60:4"},"src":"52:75:4"},{"anonymous":false,"documentation":null,"id":2520,"name":"Transfer","nodeType":"EventDefinition","parameters":{"id":2519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2514,"indexed":true,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":2520,"src":"148:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2513,"name":"address","nodeType":"ElementaryTypeName","src":"148:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2516,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2520,"src":"170:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2515,"name":"address","nodeType":"ElementaryTypeName","src":"170:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2518,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":2520,"src":"190:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2517,"name":"uint","nodeType":"ElementaryTypeName","src":"190:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"147:54:4"},"src":"133:69:4"},{"body":null,"documentation":null,"functionSelector":"06fdde03","id":2525,"implemented":false,"kind":"function","modifiers":[],"name":"name","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2521,"nodeType":"ParameterList","parameters":[],"src":"223:2:4"},"returnParameters":{"id":2524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2523,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2525,"src":"249:13:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2522,"name":"string","nodeType":"ElementaryTypeName","src":"249:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"248:15:4"},"scope":2586,"src":"210:54:4","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"95d89b41","id":2530,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2526,"nodeType":"ParameterList","parameters":[],"src":"285:2:4"},"returnParameters":{"id":2529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2528,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2530,"src":"311:13:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2527,"name":"string","nodeType":"ElementaryTypeName","src":"311:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"310:15:4"},"scope":2586,"src":"270:56:4","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"313ce567","id":2535,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2531,"nodeType":"ParameterList","parameters":[],"src":"349:2:4"},"returnParameters":{"id":2534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2533,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2535,"src":"375:5:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2532,"name":"uint8","nodeType":"ElementaryTypeName","src":"375:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"374:7:4"},"scope":2586,"src":"332:50:4","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"18160ddd","id":2540,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2536,"nodeType":"ParameterList","parameters":[],"src":"408:2:4"},"returnParameters":{"id":2539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2538,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2540,"src":"434:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2537,"name":"uint","nodeType":"ElementaryTypeName","src":"434:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"433:6:4"},"scope":2586,"src":"388:52:4","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"70a08231","id":2547,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2542,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":2547,"src":"465:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2541,"name":"address","nodeType":"ElementaryTypeName","src":"465:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"464:15:4"},"returnParameters":{"id":2546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2545,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2547,"src":"503:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2544,"name":"uint","nodeType":"ElementaryTypeName","src":"503:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"502:6:4"},"scope":2586,"src":"446:63:4","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"dd62ed3e","id":2556,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2549,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":2556,"src":"534:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2548,"name":"address","nodeType":"ElementaryTypeName","src":"534:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2551,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":2556,"src":"549:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2550,"name":"address","nodeType":"ElementaryTypeName","src":"549:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"533:32:4"},"returnParameters":{"id":2555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2554,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2556,"src":"589:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2553,"name":"uint","nodeType":"ElementaryTypeName","src":"589:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"588:6:4"},"scope":2586,"src":"515:80:4","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"095ea7b3","id":2565,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2558,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":2565,"src":"620:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2557,"name":"address","nodeType":"ElementaryTypeName","src":"620:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2560,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":2565,"src":"637:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2559,"name":"uint","nodeType":"ElementaryTypeName","src":"637:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"619:29:4"},"returnParameters":{"id":2564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2563,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2565,"src":"667:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2562,"name":"bool","nodeType":"ElementaryTypeName","src":"667:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"666:6:4"},"scope":2586,"src":"603:70:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"a9059cbb","id":2574,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2567,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2574,"src":"697:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2566,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2569,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":2574,"src":"709:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2568,"name":"uint","nodeType":"ElementaryTypeName","src":"709:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"696:24:4"},"returnParameters":{"id":2573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2572,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2574,"src":"739:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2571,"name":"bool","nodeType":"ElementaryTypeName","src":"739:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"738:6:4"},"scope":2586,"src":"679:66:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"23b872dd","id":2585,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2576,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":2585,"src":"773:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2575,"name":"address","nodeType":"ElementaryTypeName","src":"773:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2578,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2585,"src":"787:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2577,"name":"address","nodeType":"ElementaryTypeName","src":"787:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2580,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":2585,"src":"799:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2579,"name":"uint","nodeType":"ElementaryTypeName","src":"799:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"772:38:4"},"returnParameters":{"id":2584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2583,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2585,"src":"829:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2582,"name":"bool","nodeType":"ElementaryTypeName","src":"829:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"828:6:4"},"scope":2586,"src":"751:84:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":2587,"src":"28:810:4"}],"src":"0:840:4"},"id":4},"contracts/pangolin-periphery/interfaces/IPangolinRouter.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/interfaces/IPangolinRouter.sol","exportedSymbols":{"IPangolinRouter":[2976]},"id":2977,"nodeType":"SourceUnit","nodes":[{"id":2588,"literals":["solidity",">=","0.6",".2"],"nodeType":"PragmaDirective","src":"0:24:5"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":2976,"linearizedBaseContracts":[2976],"name":"IPangolinRouter","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"functionSelector":"c45a0155","id":2593,"implemented":false,"kind":"function","modifiers":[],"name":"factory","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2589,"nodeType":"ParameterList","parameters":[],"src":"77:2:5"},"returnParameters":{"id":2592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2591,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2593,"src":"103:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2590,"name":"address","nodeType":"ElementaryTypeName","src":"103:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"102:9:5"},"scope":2976,"src":"61:51:5","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"73b295c2","id":2598,"implemented":false,"kind":"function","modifiers":[],"name":"WAVAX","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2594,"nodeType":"ParameterList","parameters":[],"src":"132:2:5"},"returnParameters":{"id":2597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2596,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2598,"src":"158:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2595,"name":"address","nodeType":"ElementaryTypeName","src":"158:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"157:9:5"},"scope":2976,"src":"118:49:5","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"e8e33700","id":2623,"implemented":false,"kind":"function","modifiers":[],"name":"addLiquidity","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2600,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":2623,"src":"207:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2599,"name":"address","nodeType":"ElementaryTypeName","src":"207:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2602,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":2623,"src":"232:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2601,"name":"address","nodeType":"ElementaryTypeName","src":"232:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2604,"mutability":"mutable","name":"amountADesired","nodeType":"VariableDeclaration","overrides":null,"scope":2623,"src":"257:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2603,"name":"uint","nodeType":"ElementaryTypeName","src":"257:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2606,"mutability":"mutable","name":"amountBDesired","nodeType":"VariableDeclaration","overrides":null,"scope":2623,"src":"287:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2605,"name":"uint","nodeType":"ElementaryTypeName","src":"287:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2608,"mutability":"mutable","name":"amountAMin","nodeType":"VariableDeclaration","overrides":null,"scope":2623,"src":"317:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2607,"name":"uint","nodeType":"ElementaryTypeName","src":"317:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2610,"mutability":"mutable","name":"amountBMin","nodeType":"VariableDeclaration","overrides":null,"scope":2623,"src":"343:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2609,"name":"uint","nodeType":"ElementaryTypeName","src":"343:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2612,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2623,"src":"369:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2611,"name":"address","nodeType":"ElementaryTypeName","src":"369:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2614,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2623,"src":"390:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2613,"name":"uint","nodeType":"ElementaryTypeName","src":"390:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"196:214:5"},"returnParameters":{"id":2622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2617,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","overrides":null,"scope":2623,"src":"429:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2616,"name":"uint","nodeType":"ElementaryTypeName","src":"429:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2619,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","overrides":null,"scope":2623,"src":"443:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2618,"name":"uint","nodeType":"ElementaryTypeName","src":"443:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2621,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":2623,"src":"457:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2620,"name":"uint","nodeType":"ElementaryTypeName","src":"457:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"428:44:5"},"scope":2976,"src":"175:298:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"f91b3f72","id":2644,"implemented":false,"kind":"function","modifiers":[],"name":"addLiquidityAVAX","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2625,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":2644,"src":"515:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2624,"name":"address","nodeType":"ElementaryTypeName","src":"515:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2627,"mutability":"mutable","name":"amountTokenDesired","nodeType":"VariableDeclaration","overrides":null,"scope":2644,"src":"539:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2626,"name":"uint","nodeType":"ElementaryTypeName","src":"539:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2629,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","overrides":null,"scope":2644,"src":"573:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2628,"name":"uint","nodeType":"ElementaryTypeName","src":"573:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2631,"mutability":"mutable","name":"amountAVAXMin","nodeType":"VariableDeclaration","overrides":null,"scope":2644,"src":"603:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2630,"name":"uint","nodeType":"ElementaryTypeName","src":"603:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2633,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2644,"src":"632:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2632,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2635,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2644,"src":"653:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2634,"name":"uint","nodeType":"ElementaryTypeName","src":"653:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"504:169:5"},"returnParameters":{"id":2643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2638,"mutability":"mutable","name":"amountToken","nodeType":"VariableDeclaration","overrides":null,"scope":2644,"src":"700:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2637,"name":"uint","nodeType":"ElementaryTypeName","src":"700:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2640,"mutability":"mutable","name":"amountAVAX","nodeType":"VariableDeclaration","overrides":null,"scope":2644,"src":"718:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2639,"name":"uint","nodeType":"ElementaryTypeName","src":"718:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2642,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":2644,"src":"735:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2641,"name":"uint","nodeType":"ElementaryTypeName","src":"735:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"699:51:5"},"scope":2976,"src":"479:272:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"baa2abde","id":2665,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidity","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2646,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":2665,"src":"792:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2645,"name":"address","nodeType":"ElementaryTypeName","src":"792:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2648,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":2665,"src":"817:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2647,"name":"address","nodeType":"ElementaryTypeName","src":"817:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2650,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":2665,"src":"842:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2649,"name":"uint","nodeType":"ElementaryTypeName","src":"842:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2652,"mutability":"mutable","name":"amountAMin","nodeType":"VariableDeclaration","overrides":null,"scope":2665,"src":"867:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2651,"name":"uint","nodeType":"ElementaryTypeName","src":"867:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2654,"mutability":"mutable","name":"amountBMin","nodeType":"VariableDeclaration","overrides":null,"scope":2665,"src":"893:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2653,"name":"uint","nodeType":"ElementaryTypeName","src":"893:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2656,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2665,"src":"919:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2655,"name":"address","nodeType":"ElementaryTypeName","src":"919:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2658,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2665,"src":"940:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2657,"name":"uint","nodeType":"ElementaryTypeName","src":"940:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"781:179:5"},"returnParameters":{"id":2664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2661,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","overrides":null,"scope":2665,"src":"979:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2660,"name":"uint","nodeType":"ElementaryTypeName","src":"979:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2663,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","overrides":null,"scope":2665,"src":"993:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2662,"name":"uint","nodeType":"ElementaryTypeName","src":"993:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"978:28:5"},"scope":2976,"src":"757:250:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"33c6b725","id":2684,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidityAVAX","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2667,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":2684,"src":"1052:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2666,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2669,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":2684,"src":"1076:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2668,"name":"uint","nodeType":"ElementaryTypeName","src":"1076:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2671,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","overrides":null,"scope":2684,"src":"1101:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2670,"name":"uint","nodeType":"ElementaryTypeName","src":"1101:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2673,"mutability":"mutable","name":"amountAVAXMin","nodeType":"VariableDeclaration","overrides":null,"scope":2684,"src":"1131:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2672,"name":"uint","nodeType":"ElementaryTypeName","src":"1131:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2675,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2684,"src":"1160:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2674,"name":"address","nodeType":"ElementaryTypeName","src":"1160:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2677,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2684,"src":"1181:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2676,"name":"uint","nodeType":"ElementaryTypeName","src":"1181:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1041:160:5"},"returnParameters":{"id":2683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2680,"mutability":"mutable","name":"amountToken","nodeType":"VariableDeclaration","overrides":null,"scope":2684,"src":"1220:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2679,"name":"uint","nodeType":"ElementaryTypeName","src":"1220:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2682,"mutability":"mutable","name":"amountAVAX","nodeType":"VariableDeclaration","overrides":null,"scope":2684,"src":"1238:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2681,"name":"uint","nodeType":"ElementaryTypeName","src":"1238:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1219:35:5"},"scope":2976,"src":"1013:242:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"2195995c","id":2713,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidityWithPermit","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2686,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1306:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2685,"name":"address","nodeType":"ElementaryTypeName","src":"1306:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2688,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1331:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2687,"name":"address","nodeType":"ElementaryTypeName","src":"1331:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2690,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1356:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2689,"name":"uint","nodeType":"ElementaryTypeName","src":"1356:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2692,"mutability":"mutable","name":"amountAMin","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1381:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2691,"name":"uint","nodeType":"ElementaryTypeName","src":"1381:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2694,"mutability":"mutable","name":"amountBMin","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1407:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2693,"name":"uint","nodeType":"ElementaryTypeName","src":"1407:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2696,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1433:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2695,"name":"address","nodeType":"ElementaryTypeName","src":"1433:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2698,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1454:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2697,"name":"uint","nodeType":"ElementaryTypeName","src":"1454:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2700,"mutability":"mutable","name":"approveMax","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1478:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2699,"name":"bool","nodeType":"ElementaryTypeName","src":"1478:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":2702,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1495:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2701,"name":"uint8","nodeType":"ElementaryTypeName","src":"1495:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":2704,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1504:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1504:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2706,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1515:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1515:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1295:236:5"},"returnParameters":{"id":2712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2709,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1550:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2708,"name":"uint","nodeType":"ElementaryTypeName","src":"1550:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2711,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","overrides":null,"scope":2713,"src":"1564:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2710,"name":"uint","nodeType":"ElementaryTypeName","src":"1564:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1549:28:5"},"scope":2976,"src":"1261:317:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"2c407024","id":2740,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidityAVAXWithPermit","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2715,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1633:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2714,"name":"address","nodeType":"ElementaryTypeName","src":"1633:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2717,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1657:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2716,"name":"uint","nodeType":"ElementaryTypeName","src":"1657:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2719,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1682:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2718,"name":"uint","nodeType":"ElementaryTypeName","src":"1682:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2721,"mutability":"mutable","name":"amountAVAXMin","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1712:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2720,"name":"uint","nodeType":"ElementaryTypeName","src":"1712:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2723,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1741:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2722,"name":"address","nodeType":"ElementaryTypeName","src":"1741:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2725,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1762:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2724,"name":"uint","nodeType":"ElementaryTypeName","src":"1762:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2727,"mutability":"mutable","name":"approveMax","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1786:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2726,"name":"bool","nodeType":"ElementaryTypeName","src":"1786:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":2729,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1803:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2728,"name":"uint8","nodeType":"ElementaryTypeName","src":"1803:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":2731,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1812:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2730,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1812:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2733,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1823:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1823:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1622:217:5"},"returnParameters":{"id":2739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2736,"mutability":"mutable","name":"amountToken","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1858:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2735,"name":"uint","nodeType":"ElementaryTypeName","src":"1858:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2738,"mutability":"mutable","name":"amountAVAX","nodeType":"VariableDeclaration","overrides":null,"scope":2740,"src":"1876:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2737,"name":"uint","nodeType":"ElementaryTypeName","src":"1876:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1857:35:5"},"scope":2976,"src":"1584:309:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"38ed1739","id":2757,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2742,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2757,"src":"1943:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2741,"name":"uint","nodeType":"ElementaryTypeName","src":"1943:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2744,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":2757,"src":"1967:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2743,"name":"uint","nodeType":"ElementaryTypeName","src":"1967:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2747,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2757,"src":"1995:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2745,"name":"address","nodeType":"ElementaryTypeName","src":"1995:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2746,"length":null,"nodeType":"ArrayTypeName","src":"1995:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2749,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2757,"src":"2029:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2748,"name":"address","nodeType":"ElementaryTypeName","src":"2029:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2751,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2757,"src":"2050:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2750,"name":"uint","nodeType":"ElementaryTypeName","src":"2050:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1932:138:5"},"returnParameters":{"id":2756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2755,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":2757,"src":"2089:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2753,"name":"uint","nodeType":"ElementaryTypeName","src":"2089:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2754,"length":null,"nodeType":"ArrayTypeName","src":"2089:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"2088:23:5"},"scope":2976,"src":"1899:213:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"8803dbee","id":2774,"implemented":false,"kind":"function","modifiers":[],"name":"swapTokensForExactTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2759,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":2774,"src":"2162:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2758,"name":"uint","nodeType":"ElementaryTypeName","src":"2162:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2761,"mutability":"mutable","name":"amountInMax","nodeType":"VariableDeclaration","overrides":null,"scope":2774,"src":"2187:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2760,"name":"uint","nodeType":"ElementaryTypeName","src":"2187:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2764,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2774,"src":"2214:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2762,"name":"address","nodeType":"ElementaryTypeName","src":"2214:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2763,"length":null,"nodeType":"ArrayTypeName","src":"2214:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2766,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2774,"src":"2248:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2765,"name":"address","nodeType":"ElementaryTypeName","src":"2248:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2768,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2774,"src":"2269:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2767,"name":"uint","nodeType":"ElementaryTypeName","src":"2269:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2151:138:5"},"returnParameters":{"id":2773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2772,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":2774,"src":"2308:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2770,"name":"uint","nodeType":"ElementaryTypeName","src":"2308:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2771,"length":null,"nodeType":"ArrayTypeName","src":"2308:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"2307:23:5"},"scope":2976,"src":"2118:213:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"a2a1623d","id":2789,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactAVAXForTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2776,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":2789,"src":"2369:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2775,"name":"uint","nodeType":"ElementaryTypeName","src":"2369:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2779,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2789,"src":"2388:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2777,"name":"address","nodeType":"ElementaryTypeName","src":"2388:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2778,"length":null,"nodeType":"ArrayTypeName","src":"2388:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2781,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2789,"src":"2413:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2780,"name":"address","nodeType":"ElementaryTypeName","src":"2413:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2783,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2789,"src":"2425:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2782,"name":"uint","nodeType":"ElementaryTypeName","src":"2425:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2368:71:5"},"returnParameters":{"id":2788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2787,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":2789,"src":"2493:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2785,"name":"uint","nodeType":"ElementaryTypeName","src":"2493:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2786,"length":null,"nodeType":"ArrayTypeName","src":"2493:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"2492:23:5"},"scope":2976,"src":"2337:179:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"7a42416a","id":2806,"implemented":false,"kind":"function","modifiers":[],"name":"swapTokensForExactAVAX","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2791,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":2806,"src":"2554:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2790,"name":"uint","nodeType":"ElementaryTypeName","src":"2554:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2793,"mutability":"mutable","name":"amountInMax","nodeType":"VariableDeclaration","overrides":null,"scope":2806,"src":"2570:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2792,"name":"uint","nodeType":"ElementaryTypeName","src":"2570:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2796,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2806,"src":"2588:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2794,"name":"address","nodeType":"ElementaryTypeName","src":"2588:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2795,"length":null,"nodeType":"ArrayTypeName","src":"2588:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2798,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2806,"src":"2613:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2797,"name":"address","nodeType":"ElementaryTypeName","src":"2613:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2800,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2806,"src":"2625:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2799,"name":"uint","nodeType":"ElementaryTypeName","src":"2625:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2553:86:5"},"returnParameters":{"id":2805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2804,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":2806,"src":"2676:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2802,"name":"uint","nodeType":"ElementaryTypeName","src":"2676:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2803,"length":null,"nodeType":"ArrayTypeName","src":"2676:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"2675:23:5"},"scope":2976,"src":"2522:177:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"676528d1","id":2823,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForAVAX","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2808,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2823,"src":"2737:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2807,"name":"uint","nodeType":"ElementaryTypeName","src":"2737:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2810,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":2823,"src":"2752:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2809,"name":"uint","nodeType":"ElementaryTypeName","src":"2752:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2813,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2823,"src":"2771:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2811,"name":"address","nodeType":"ElementaryTypeName","src":"2771:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2812,"length":null,"nodeType":"ArrayTypeName","src":"2771:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2815,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2823,"src":"2796:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2814,"name":"address","nodeType":"ElementaryTypeName","src":"2796:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2817,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2823,"src":"2808:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2816,"name":"uint","nodeType":"ElementaryTypeName","src":"2808:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2736:86:5"},"returnParameters":{"id":2822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2821,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":2823,"src":"2859:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2819,"name":"uint","nodeType":"ElementaryTypeName","src":"2859:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2820,"length":null,"nodeType":"ArrayTypeName","src":"2859:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"2858:23:5"},"scope":2976,"src":"2705:177:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"8a657e67","id":2838,"implemented":false,"kind":"function","modifiers":[],"name":"swapAVAXForExactTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2825,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":2838,"src":"2920:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2824,"name":"uint","nodeType":"ElementaryTypeName","src":"2920:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2828,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2838,"src":"2936:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2826,"name":"address","nodeType":"ElementaryTypeName","src":"2936:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2827,"length":null,"nodeType":"ArrayTypeName","src":"2936:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2830,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2838,"src":"2961:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2829,"name":"address","nodeType":"ElementaryTypeName","src":"2961:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2832,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2838,"src":"2973:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2831,"name":"uint","nodeType":"ElementaryTypeName","src":"2973:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2919:68:5"},"returnParameters":{"id":2837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2836,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":2838,"src":"3041:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2834,"name":"uint","nodeType":"ElementaryTypeName","src":"3041:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2835,"length":null,"nodeType":"ArrayTypeName","src":"3041:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"3040:23:5"},"scope":2976,"src":"2888:176:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"ad615dec","id":2849,"implemented":false,"kind":"function","modifiers":[],"name":"quote","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2840,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","overrides":null,"scope":2849,"src":"3087:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2839,"name":"uint","nodeType":"ElementaryTypeName","src":"3087:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2842,"mutability":"mutable","name":"reserveA","nodeType":"VariableDeclaration","overrides":null,"scope":2849,"src":"3101:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2841,"name":"uint","nodeType":"ElementaryTypeName","src":"3101:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2844,"mutability":"mutable","name":"reserveB","nodeType":"VariableDeclaration","overrides":null,"scope":2849,"src":"3116:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2843,"name":"uint","nodeType":"ElementaryTypeName","src":"3116:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3086:44:5"},"returnParameters":{"id":2848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2847,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","overrides":null,"scope":2849,"src":"3154:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2846,"name":"uint","nodeType":"ElementaryTypeName","src":"3154:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3153:14:5"},"scope":2976,"src":"3072:96:5","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"054d50d4","id":2860,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountOut","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2851,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2860,"src":"3196:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2850,"name":"uint","nodeType":"ElementaryTypeName","src":"3196:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2853,"mutability":"mutable","name":"reserveIn","nodeType":"VariableDeclaration","overrides":null,"scope":2860,"src":"3211:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2852,"name":"uint","nodeType":"ElementaryTypeName","src":"3211:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2855,"mutability":"mutable","name":"reserveOut","nodeType":"VariableDeclaration","overrides":null,"scope":2860,"src":"3227:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2854,"name":"uint","nodeType":"ElementaryTypeName","src":"3227:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3195:48:5"},"returnParameters":{"id":2859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2858,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":2860,"src":"3267:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2857,"name":"uint","nodeType":"ElementaryTypeName","src":"3267:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3266:16:5"},"scope":2976,"src":"3174:109:5","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"85f8c259","id":2871,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountIn","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2862,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":2871,"src":"3310:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2861,"name":"uint","nodeType":"ElementaryTypeName","src":"3310:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2864,"mutability":"mutable","name":"reserveIn","nodeType":"VariableDeclaration","overrides":null,"scope":2871,"src":"3326:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2863,"name":"uint","nodeType":"ElementaryTypeName","src":"3326:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2866,"mutability":"mutable","name":"reserveOut","nodeType":"VariableDeclaration","overrides":null,"scope":2871,"src":"3342:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2865,"name":"uint","nodeType":"ElementaryTypeName","src":"3342:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3309:49:5"},"returnParameters":{"id":2870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2869,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2871,"src":"3382:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2868,"name":"uint","nodeType":"ElementaryTypeName","src":"3382:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3381:15:5"},"scope":2976,"src":"3289:108:5","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"d06ca61f","id":2882,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountsOut","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2873,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2882,"src":"3426:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2872,"name":"uint","nodeType":"ElementaryTypeName","src":"3426:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2876,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2882,"src":"3441:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2874,"name":"address","nodeType":"ElementaryTypeName","src":"3441:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2875,"length":null,"nodeType":"ArrayTypeName","src":"3441:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"}],"src":"3425:40:5"},"returnParameters":{"id":2881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2880,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":2882,"src":"3489:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2878,"name":"uint","nodeType":"ElementaryTypeName","src":"3489:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2879,"length":null,"nodeType":"ArrayTypeName","src":"3489:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"3488:23:5"},"scope":2976,"src":"3403:109:5","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"1f00ca74","id":2893,"implemented":false,"kind":"function","modifiers":[],"name":"getAmountsIn","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2884,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":2893,"src":"3540:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2883,"name":"uint","nodeType":"ElementaryTypeName","src":"3540:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2887,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2893,"src":"3556:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2885,"name":"address","nodeType":"ElementaryTypeName","src":"3556:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2886,"length":null,"nodeType":"ArrayTypeName","src":"3556:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"}],"src":"3539:41:5"},"returnParameters":{"id":2892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2891,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":2893,"src":"3604:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2889,"name":"uint","nodeType":"ElementaryTypeName","src":"3604:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2890,"length":null,"nodeType":"ArrayTypeName","src":"3604:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"3603:23:5"},"scope":2976,"src":"3518:109:5","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"73bc79cf","id":2910,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidityAVAXSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2895,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":2910,"src":"3703:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2894,"name":"address","nodeType":"ElementaryTypeName","src":"3703:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2897,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":2910,"src":"3727:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2896,"name":"uint","nodeType":"ElementaryTypeName","src":"3727:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2899,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","overrides":null,"scope":2910,"src":"3752:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2898,"name":"uint","nodeType":"ElementaryTypeName","src":"3752:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2901,"mutability":"mutable","name":"amountAVAXMin","nodeType":"VariableDeclaration","overrides":null,"scope":2910,"src":"3782:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2900,"name":"uint","nodeType":"ElementaryTypeName","src":"3782:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2903,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2910,"src":"3811:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2902,"name":"address","nodeType":"ElementaryTypeName","src":"3811:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2905,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2910,"src":"3832:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2904,"name":"uint","nodeType":"ElementaryTypeName","src":"3832:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3692:160:5"},"returnParameters":{"id":2909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2908,"mutability":"mutable","name":"amountAVAX","nodeType":"VariableDeclaration","overrides":null,"scope":2910,"src":"3871:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2907,"name":"uint","nodeType":"ElementaryTypeName","src":"3871:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3870:17:5"},"scope":2976,"src":"3635:253:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"9fc27226","id":2935,"implemented":false,"kind":"function","modifiers":[],"name":"removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2912,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":2935,"src":"3972:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2911,"name":"address","nodeType":"ElementaryTypeName","src":"3972:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2914,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","overrides":null,"scope":2935,"src":"3996:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2913,"name":"uint","nodeType":"ElementaryTypeName","src":"3996:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2916,"mutability":"mutable","name":"amountTokenMin","nodeType":"VariableDeclaration","overrides":null,"scope":2935,"src":"4021:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2915,"name":"uint","nodeType":"ElementaryTypeName","src":"4021:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2918,"mutability":"mutable","name":"amountAVAXMin","nodeType":"VariableDeclaration","overrides":null,"scope":2935,"src":"4051:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2917,"name":"uint","nodeType":"ElementaryTypeName","src":"4051:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2920,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2935,"src":"4080:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2919,"name":"address","nodeType":"ElementaryTypeName","src":"4080:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2922,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2935,"src":"4101:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2921,"name":"uint","nodeType":"ElementaryTypeName","src":"4101:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2924,"mutability":"mutable","name":"approveMax","nodeType":"VariableDeclaration","overrides":null,"scope":2935,"src":"4125:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2923,"name":"bool","nodeType":"ElementaryTypeName","src":"4125:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":2926,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":2935,"src":"4142:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2925,"name":"uint8","nodeType":"ElementaryTypeName","src":"4142:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":2928,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":2935,"src":"4151:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2927,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4151:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2930,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":2935,"src":"4162:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4162:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3961:217:5"},"returnParameters":{"id":2934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2933,"mutability":"mutable","name":"amountAVAX","nodeType":"VariableDeclaration","overrides":null,"scope":2935,"src":"4197:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2932,"name":"uint","nodeType":"ElementaryTypeName","src":"4197:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4196:17:5"},"scope":2976,"src":"3894:320:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"5c11d795","id":2949,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2937,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2949,"src":"4295:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2936,"name":"uint","nodeType":"ElementaryTypeName","src":"4295:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2939,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":2949,"src":"4319:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2938,"name":"uint","nodeType":"ElementaryTypeName","src":"4319:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2942,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2949,"src":"4347:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2940,"name":"address","nodeType":"ElementaryTypeName","src":"4347:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2941,"length":null,"nodeType":"ArrayTypeName","src":"4347:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2944,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2949,"src":"4381:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2943,"name":"address","nodeType":"ElementaryTypeName","src":"4381:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2946,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2949,"src":"4402:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2945,"name":"uint","nodeType":"ElementaryTypeName","src":"4402:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4284:138:5"},"returnParameters":{"id":2948,"nodeType":"ParameterList","parameters":[],"src":"4431:0:5"},"scope":2976,"src":"4222:210:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"c57559dd","id":2961,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactAVAXForTokensSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2951,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":2961,"src":"4509:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2950,"name":"uint","nodeType":"ElementaryTypeName","src":"4509:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2954,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2961,"src":"4537:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2952,"name":"address","nodeType":"ElementaryTypeName","src":"4537:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2953,"length":null,"nodeType":"ArrayTypeName","src":"4537:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2956,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2961,"src":"4571:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2955,"name":"address","nodeType":"ElementaryTypeName","src":"4571:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2958,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2961,"src":"4592:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2957,"name":"uint","nodeType":"ElementaryTypeName","src":"4592:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4498:114:5"},"returnParameters":{"id":2960,"nodeType":"ParameterList","parameters":[],"src":"4629:0:5"},"scope":2976,"src":"4438:192:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"762b1562","id":2975,"implemented":false,"kind":"function","modifiers":[],"name":"swapExactTokensForAVAXSupportingFeeOnTransferTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2963,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":2975,"src":"4707:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2962,"name":"uint","nodeType":"ElementaryTypeName","src":"4707:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2965,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":2975,"src":"4731:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2964,"name":"uint","nodeType":"ElementaryTypeName","src":"4731:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2968,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":2975,"src":"4759:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2966,"name":"address","nodeType":"ElementaryTypeName","src":"4759:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2967,"length":null,"nodeType":"ArrayTypeName","src":"4759:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2970,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2975,"src":"4793:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2969,"name":"address","nodeType":"ElementaryTypeName","src":"4793:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2972,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":2975,"src":"4814:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2971,"name":"uint","nodeType":"ElementaryTypeName","src":"4814:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4696:138:5"},"returnParameters":{"id":2974,"nodeType":"ParameterList","parameters":[],"src":"4843:0:5"},"scope":2976,"src":"4636:208:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":2977,"src":"28:4819:5"}],"src":"0:4849:5"},"id":5},"contracts/pangolin-periphery/interfaces/IWAVAX.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/interfaces/IWAVAX.sol","exportedSymbols":{"IWAVAX":[3003]},"id":3004,"nodeType":"SourceUnit","nodes":[{"id":2978,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:6"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":3003,"linearizedBaseContracts":[3003],"name":"IWAVAX","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"functionSelector":"d0e30db0","id":2981,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2979,"nodeType":"ParameterList","parameters":[],"src":"68:2:6"},"returnParameters":{"id":2980,"nodeType":"ParameterList","parameters":[],"src":"87:0:6"},"scope":3003,"src":"52:36:6","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"a9059cbb","id":2990,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2983,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2990,"src":"112:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2982,"name":"address","nodeType":"ElementaryTypeName","src":"112:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2985,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":2990,"src":"124:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2984,"name":"uint","nodeType":"ElementaryTypeName","src":"124:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"111:24:6"},"returnParameters":{"id":2989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2988,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2990,"src":"154:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2987,"name":"bool","nodeType":"ElementaryTypeName","src":"154:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"153:6:6"},"scope":3003,"src":"94:66:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"70a08231","id":2997,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":2993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2992,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":2997,"src":"185:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2991,"name":"address","nodeType":"ElementaryTypeName","src":"185:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"184:15:6"},"returnParameters":{"id":2996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2995,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2997,"src":"223:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2994,"name":"uint","nodeType":"ElementaryTypeName","src":"223:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"222:6:6"},"scope":3003,"src":"166:63:6","stateMutability":"view","virtual":false,"visibility":"external"},{"body":null,"documentation":null,"functionSelector":"2e1a7d4d","id":3002,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2999,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":3002,"src":"253:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2998,"name":"uint","nodeType":"ElementaryTypeName","src":"253:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"252:6:6"},"returnParameters":{"id":3001,"nodeType":"ParameterList","parameters":[],"src":"267:0:6"},"scope":3003,"src":"235:33:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3004,"src":"28:243:6"}],"src":"0:273:6"},"id":6},"contracts/pangolin-periphery/libraries/PangolinLibrary.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/libraries/PangolinLibrary.sol","exportedSymbols":{"PangolinLibrary":[3476]},"id":3477,"nodeType":"SourceUnit","nodes":[{"id":3005,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"0:24:7"},{"absolutePath":"contracts/pangolin-core/interfaces/IPangolinFactory.sol","file":"../../pangolin-core/interfaces/IPangolinFactory.sol","id":3006,"nodeType":"ImportDirective","scope":3477,"sourceUnit":63,"src":"28:61:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-core/interfaces/IPangolinPair.sol","file":"../../pangolin-core/interfaces/IPangolinPair.sol","id":3007,"nodeType":"ImportDirective","scope":3477,"sourceUnit":305,"src":"91:58:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/pangolin-periphery/libraries/SafeMath.sol","file":"./SafeMath.sol","id":3008,"nodeType":"ImportDirective","scope":3477,"sourceUnit":3552,"src":"153:24:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":null,"fullyImplemented":true,"id":3476,"linearizedBaseContracts":[3476],"name":"PangolinLibrary","nodeType":"ContractDefinition","nodes":[{"id":3011,"libraryName":{"contractScope":null,"id":3009,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":3551,"src":"218:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$3551","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"212:24:7","typeName":{"id":3010,"name":"uint","nodeType":"ElementaryTypeName","src":"231:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"body":{"id":3054,"nodeType":"Block","src":"452:240:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3023,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3013,"src":"471:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"id":3024,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3015,"src":"481:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"471:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e4c6962726172793a204944454e544943414c5f414444524553534553","id":3026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"489:38:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_398cb0b74ea180decb6380ed1d1234dba257b88973fb0b09bea48e00976b9c15","typeString":"literal_string \"PangolinLibrary: IDENTICAL_ADDRESSES\""},"value":"PangolinLibrary: IDENTICAL_ADDRESSES"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_398cb0b74ea180decb6380ed1d1234dba257b88973fb0b09bea48e00976b9c15","typeString":"literal_string \"PangolinLibrary: IDENTICAL_ADDRESSES\""}],"id":3022,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"463:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"463:65:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3028,"nodeType":"ExpressionStatement","src":"463:65:7"},{"expression":{"argumentTypes":null,"id":3042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":3029,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"540:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3030,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"548:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3031,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"539:16:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3032,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3013,"src":"558:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3033,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3015,"src":"567:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"558:15:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":3038,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3015,"src":"596:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3039,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3013,"src":"604:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3040,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"595:16:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"id":3041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"558:53:7","trueExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":3035,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3013,"src":"577:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3036,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3015,"src":"585:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3037,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"576:16:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"539:72:7","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3043,"nodeType":"ExpressionStatement","src":"539:72:7"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3045,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"630:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"648:1:7","subdenomination":null,"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":3047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"640:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3046,"name":"address","nodeType":"ElementaryTypeName","src":"640:7:7","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"640:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"630:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e4c6962726172793a205a45524f5f41444452455353","id":3051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"652:31:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cde908b7df914eeaea2529a983aca522c8de9d2299aac9a3399e7fa2619393dc","typeString":"literal_string \"PangolinLibrary: ZERO_ADDRESS\""},"value":"PangolinLibrary: ZERO_ADDRESS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde908b7df914eeaea2529a983aca522c8de9d2299aac9a3399e7fa2619393dc","typeString":"literal_string \"PangolinLibrary: ZERO_ADDRESS\""}],"id":3044,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"622:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"622:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3053,"nodeType":"ExpressionStatement","src":"622:62:7"}]},"documentation":null,"id":3055,"implemented":true,"kind":"function","modifiers":[],"name":"sortTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3013,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":3055,"src":"365:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3012,"name":"address","nodeType":"ElementaryTypeName","src":"365:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3015,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":3055,"src":"381:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3014,"name":"address","nodeType":"ElementaryTypeName","src":"381:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"364:32:7"},"returnParameters":{"id":3021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3018,"mutability":"mutable","name":"token0","nodeType":"VariableDeclaration","overrides":null,"scope":3055,"src":"420:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3017,"name":"address","nodeType":"ElementaryTypeName","src":"420:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3020,"mutability":"mutable","name":"token1","nodeType":"VariableDeclaration","overrides":null,"scope":3055,"src":"436:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3019,"name":"address","nodeType":"ElementaryTypeName","src":"436:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"419:32:7"},"scope":3476,"src":"345:347:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3099,"nodeType":"Block","src":"887:375:7","statements":[{"assignments":[3067,3069],"declarations":[{"constant":false,"id":3067,"mutability":"mutable","name":"token0","nodeType":"VariableDeclaration","overrides":null,"scope":3099,"src":"899:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3066,"name":"address","nodeType":"ElementaryTypeName","src":"899:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3069,"mutability":"mutable","name":"token1","nodeType":"VariableDeclaration","overrides":null,"scope":3099,"src":"915:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3068,"name":"address","nodeType":"ElementaryTypeName","src":"915:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":3074,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3071,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3059,"src":"944:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3072,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3061,"src":"952:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3070,"name":"sortTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3055,"src":"933:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$","typeString":"function (address,address) pure returns (address,address)"}},"id":3073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"933:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"898:61:7"},{"expression":{"argumentTypes":null,"id":3097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3075,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"970:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"ff","id":3083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1035:7:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9","typeString":"literal_string (contains invalid UTF-8 sequence at position 0)"},"value":null},{"argumentTypes":null,"id":3084,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3057,"src":"1061:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3088,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3067,"src":"1114:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3089,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3069,"src":"1122:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":3086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1097:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1097:16:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1097:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3085,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1087:9:7","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1087:43:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"hexValue":"40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545","id":3092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1149:69:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ddb1e4875836598a4d8840045ea7355ab6d06b2915790dd9f7243b1e0d8dbc39","typeString":"literal_string (contains invalid UTF-8 sequence at position 5)"},"value":null}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b1a944cf13a9a1c08facb2c9e98623ef3254d2ddb48113885c3e8e97fec8db9","typeString":"literal_string (contains invalid UTF-8 sequence at position 0)"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_ddb1e4875836598a4d8840045ea7355ab6d06b2915790dd9f7243b1e0d8dbc39","typeString":"literal_string (contains invalid UTF-8 sequence at position 5)"}],"expression":{"argumentTypes":null,"id":3081,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1000:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1000:16:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1000:251:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3080,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"990:9:7","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"990:262:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"985:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3078,"name":"uint","nodeType":"ElementaryTypeName","src":"985:4:7","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"985:268:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"977:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3076,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:7","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"977:277:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"970:284:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3098,"nodeType":"ExpressionStatement","src":"970:284:7"}]},"documentation":null,"id":3100,"implemented":true,"kind":"function","modifiers":[],"name":"pairFor","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3057,"mutability":"mutable","name":"factory","nodeType":"VariableDeclaration","overrides":null,"scope":3100,"src":"801:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3056,"name":"address","nodeType":"ElementaryTypeName","src":"801:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3059,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":3100,"src":"818:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3058,"name":"address","nodeType":"ElementaryTypeName","src":"818:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3061,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":3100,"src":"834:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3060,"name":"address","nodeType":"ElementaryTypeName","src":"834:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"800:49:7"},"returnParameters":{"id":3065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3064,"mutability":"mutable","name":"pair","nodeType":"VariableDeclaration","overrides":null,"scope":3100,"src":"873:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3063,"name":"address","nodeType":"ElementaryTypeName","src":"873:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"872:14:7"},"scope":3476,"src":"784:478:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3149,"nodeType":"Block","src":"1443:267:7","statements":[{"assignments":[3114,null],"declarations":[{"constant":false,"id":3114,"mutability":"mutable","name":"token0","nodeType":"VariableDeclaration","overrides":null,"scope":3149,"src":"1455:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3113,"name":"address","nodeType":"ElementaryTypeName","src":"1455:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},null],"id":3119,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3116,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3104,"src":"1485:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3117,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3106,"src":"1493:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3115,"name":"sortTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3055,"src":"1474:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$","typeString":"function (address,address) pure returns (address,address)"}},"id":3118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1474:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"VariableDeclarationStatement","src":"1454:46:7"},{"assignments":[3121,3123,null],"declarations":[{"constant":false,"id":3121,"mutability":"mutable","name":"reserve0","nodeType":"VariableDeclaration","overrides":null,"scope":3149,"src":"1512:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3120,"name":"uint","nodeType":"ElementaryTypeName","src":"1512:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3123,"mutability":"mutable","name":"reserve1","nodeType":"VariableDeclaration","overrides":null,"scope":3149,"src":"1527:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3122,"name":"uint","nodeType":"ElementaryTypeName","src":"1527:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},null],"id":3133,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3126,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3102,"src":"1567:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3127,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3104,"src":"1576:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3128,"name":"tokenB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3106,"src":"1584:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3125,"name":"pairFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3100,"src":"1559:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address,address) pure returns (address)"}},"id":3129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1559:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3124,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"1545:13:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$304_$","typeString":"type(contract IPangolinPair)"}},"id":3130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1545:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$304","typeString":"contract IPangolinPair"}},"id":3131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getReserves","nodeType":"MemberAccess","referencedDeclaration":246,"src":"1545:59:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"function () view external returns (uint112,uint112,uint32)"}},"id":3132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1545:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"tuple(uint112,uint112,uint32)"}},"nodeType":"VariableDeclarationStatement","src":"1511:95:7"},{"expression":{"argumentTypes":null,"id":3147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":3134,"name":"reserveA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3109,"src":"1618:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3135,"name":"reserveB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3111,"src":"1628:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3136,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1617:20:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3137,"name":"tokenA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3104,"src":"1640:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3138,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"1650:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1640:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":3143,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3123,"src":"1683:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3144,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3121,"src":"1693:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3145,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1682:20:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":3146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1640:62:7","trueExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":3140,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3121,"src":"1660:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3141,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3123,"src":"1670:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3142,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1659:20:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"1617:85:7","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3148,"nodeType":"ExpressionStatement","src":"1617:85:7"}]},"documentation":null,"id":3150,"implemented":true,"kind":"function","modifiers":[],"name":"getReserves","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3102,"mutability":"mutable","name":"factory","nodeType":"VariableDeclaration","overrides":null,"scope":3150,"src":"1341:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3101,"name":"address","nodeType":"ElementaryTypeName","src":"1341:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3104,"mutability":"mutable","name":"tokenA","nodeType":"VariableDeclaration","overrides":null,"scope":3150,"src":"1358:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3103,"name":"address","nodeType":"ElementaryTypeName","src":"1358:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3106,"mutability":"mutable","name":"tokenB","nodeType":"VariableDeclaration","overrides":null,"scope":3150,"src":"1374:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3105,"name":"address","nodeType":"ElementaryTypeName","src":"1374:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1340:49:7"},"returnParameters":{"id":3112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3109,"mutability":"mutable","name":"reserveA","nodeType":"VariableDeclaration","overrides":null,"scope":3150,"src":"1413:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3108,"name":"uint","nodeType":"ElementaryTypeName","src":"1413:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3111,"mutability":"mutable","name":"reserveB","nodeType":"VariableDeclaration","overrides":null,"scope":3150,"src":"1428:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3110,"name":"uint","nodeType":"ElementaryTypeName","src":"1428:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1412:30:7"},"scope":3476,"src":"1320:390:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3188,"nodeType":"Block","src":"1919:223:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3162,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"1938:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1948:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1938:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f414d4f554e54","id":3165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1951:38:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2afd7eca07968c978a5ff5032aa9156fc5f2ed2d8e365ee16d36f22ce92cd2f9","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_AMOUNT\""},"value":"PangolinLibrary: INSUFFICIENT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2afd7eca07968c978a5ff5032aa9156fc5f2ed2d8e365ee16d36f22ce92cd2f9","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_AMOUNT\""}],"id":3161,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1930:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1930:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3167,"nodeType":"ExpressionStatement","src":"1930:60:7"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3169,"name":"reserveA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3154,"src":"2009:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2020:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2009:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3172,"name":"reserveB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3156,"src":"2025:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2036:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2025:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2009:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c4951554944495459","id":3176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2039:41:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""},"value":"PangolinLibrary: INSUFFICIENT_LIQUIDITY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""}],"id":3168,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2001:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2001:80:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3178,"nodeType":"ExpressionStatement","src":"2001:80:7"},{"expression":{"argumentTypes":null,"id":3186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3179,"name":"amountB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3159,"src":"2092:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3182,"name":"reserveB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3156,"src":"2114:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3180,"name":"amountA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"2102:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":3550,"src":"2102:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2102:21:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":3184,"name":"reserveA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3154,"src":"2126:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2102:32:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2092:42:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3187,"nodeType":"ExpressionStatement","src":"2092:42:7"}]},"documentation":null,"id":3189,"implemented":true,"kind":"function","modifiers":[],"name":"quote","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3152,"mutability":"mutable","name":"amountA","nodeType":"VariableDeclaration","overrides":null,"scope":3189,"src":"1838:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3151,"name":"uint","nodeType":"ElementaryTypeName","src":"1838:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3154,"mutability":"mutable","name":"reserveA","nodeType":"VariableDeclaration","overrides":null,"scope":3189,"src":"1852:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3153,"name":"uint","nodeType":"ElementaryTypeName","src":"1852:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3156,"mutability":"mutable","name":"reserveB","nodeType":"VariableDeclaration","overrides":null,"scope":3189,"src":"1867:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3155,"name":"uint","nodeType":"ElementaryTypeName","src":"1867:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1837:44:7"},"returnParameters":{"id":3160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3159,"mutability":"mutable","name":"amountB","nodeType":"VariableDeclaration","overrides":null,"scope":3189,"src":"1905:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3158,"name":"uint","nodeType":"ElementaryTypeName","src":"1905:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1904:14:7"},"scope":3476,"src":"1823:319:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3248,"nodeType":"Block","src":"2373:406:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3201,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3191,"src":"2392:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2403:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2392:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54","id":3204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2406:44:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_dbd68bbd4b2618deb50f2e9d949dcee7b5235e32665c2886a874095bd64eb24e","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_INPUT_AMOUNT\""},"value":"PangolinLibrary: INSUFFICIENT_INPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dbd68bbd4b2618deb50f2e9d949dcee7b5235e32665c2886a874095bd64eb24e","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_INPUT_AMOUNT\""}],"id":3200,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2384:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2384:67:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3206,"nodeType":"ExpressionStatement","src":"2384:67:7"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3208,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"2470:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2482:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2470:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3211,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"2487:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2500:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2487:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2470:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c4951554944495459","id":3215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2503:41:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""},"value":"PangolinLibrary: INSUFFICIENT_LIQUIDITY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""}],"id":3207,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2462:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2462:83:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3217,"nodeType":"ExpressionStatement","src":"2462:83:7"},{"assignments":[3219],"declarations":[{"constant":false,"id":3219,"mutability":"mutable","name":"amountInWithFee","nodeType":"VariableDeclaration","overrides":null,"scope":3248,"src":"2556:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3218,"name":"uint","nodeType":"ElementaryTypeName","src":"2556:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3224,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"393937","id":3222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2592:3:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_997_by_1","typeString":"int_const 997"},"value":"997"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_997_by_1","typeString":"int_const 997"}],"expression":{"argumentTypes":null,"id":3220,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3191,"src":"2579:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":3550,"src":"2579:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2579:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2556:40:7"},{"assignments":[3226],"declarations":[{"constant":false,"id":3226,"mutability":"mutable","name":"numerator","nodeType":"VariableDeclaration","overrides":null,"scope":3248,"src":"2607:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3225,"name":"uint","nodeType":"ElementaryTypeName","src":"2607:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3231,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3229,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"2644:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3227,"name":"amountInWithFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3219,"src":"2624:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":3550,"src":"2624:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2624:31:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2607:48:7"},{"assignments":[3233],"declarations":[{"constant":false,"id":3233,"mutability":"mutable","name":"denominator","nodeType":"VariableDeclaration","overrides":null,"scope":3248,"src":"2666:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3232,"name":"uint","nodeType":"ElementaryTypeName","src":"2666:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3241,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3239,"name":"amountInWithFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3219,"src":"2709:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31303030","id":3236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2699:4:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"argumentTypes":null,"id":3234,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"2685:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":3550,"src":"2685:13:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2685:19:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":3500,"src":"2685:23:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2685:40:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2666:59:7"},{"expression":{"argumentTypes":null,"id":3246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3242,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"2736:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3243,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3226,"src":"2748:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":3244,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3233,"src":"2760:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2748:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2736:35:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3247,"nodeType":"ExpressionStatement","src":"2736:35:7"}]},"documentation":null,"id":3249,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountOut","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3191,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":3249,"src":"2286:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3190,"name":"uint","nodeType":"ElementaryTypeName","src":"2286:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3193,"mutability":"mutable","name":"reserveIn","nodeType":"VariableDeclaration","overrides":null,"scope":3249,"src":"2301:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3192,"name":"uint","nodeType":"ElementaryTypeName","src":"2301:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3195,"mutability":"mutable","name":"reserveOut","nodeType":"VariableDeclaration","overrides":null,"scope":3249,"src":"2317:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3194,"name":"uint","nodeType":"ElementaryTypeName","src":"2317:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2285:48:7"},"returnParameters":{"id":3199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3198,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":3249,"src":"2357:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3197,"name":"uint","nodeType":"ElementaryTypeName","src":"2357:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2356:16:7"},"scope":3476,"src":"2264:515:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3308,"nodeType":"Block","src":"3008:362:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3261,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3251,"src":"3027:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3039:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3027:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54","id":3264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3042:45:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fbe2352523f9faf36b97849eb8ca22b722e8cbca4e1e1f4739118cbd55bf3f96","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_OUTPUT_AMOUNT\""},"value":"PangolinLibrary: INSUFFICIENT_OUTPUT_AMOUNT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fbe2352523f9faf36b97849eb8ca22b722e8cbca4e1e1f4739118cbd55bf3f96","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_OUTPUT_AMOUNT\""}],"id":3260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3019:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3019:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3266,"nodeType":"ExpressionStatement","src":"3019:69:7"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3268,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3253,"src":"3107:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3119:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3107:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3271,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"3124:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3137:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3124:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3107:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c4951554944495459","id":3275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3140:41:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""},"value":"PangolinLibrary: INSUFFICIENT_LIQUIDITY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f4936a28530f824330a160210c1203816dc0b56365034d263702194187510bd8","typeString":"literal_string \"PangolinLibrary: INSUFFICIENT_LIQUIDITY\""}],"id":3267,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3099:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3099:83:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3277,"nodeType":"ExpressionStatement","src":"3099:83:7"},{"assignments":[3279],"declarations":[{"constant":false,"id":3279,"mutability":"mutable","name":"numerator","nodeType":"VariableDeclaration","overrides":null,"scope":3308,"src":"3193:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3278,"name":"uint","nodeType":"ElementaryTypeName","src":"3193:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3287,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31303030","id":3285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3239:4:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3282,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3251,"src":"3224:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3280,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3253,"src":"3210:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":3550,"src":"3210:13:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3210:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":3550,"src":"3210:28:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3210:34:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3193:51:7"},{"assignments":[3289],"declarations":[{"constant":false,"id":3289,"mutability":"mutable","name":"denominator","nodeType":"VariableDeclaration","overrides":null,"scope":3308,"src":"3255:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3288,"name":"uint","nodeType":"ElementaryTypeName","src":"3255:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3297,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"393937","id":3295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3304:3:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_997_by_1","typeString":"int_const 997"},"value":"997"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_997_by_1","typeString":"int_const 997"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3292,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3251,"src":"3289:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3290,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"3274:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"3274:14:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3274:25:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":3550,"src":"3274:29:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3274:34:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3255:53:7"},{"expression":{"argumentTypes":null,"id":3306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3298,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3258,"src":"3319:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":3304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3360:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3299,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"3331:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":3300,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3289,"src":"3343:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3331:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3302,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3330:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":3500,"src":"3330:29:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3330:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3319:43:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3307,"nodeType":"ExpressionStatement","src":"3319:43:7"}]},"documentation":null,"id":3309,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountIn","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3251,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":3309,"src":"2921:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3250,"name":"uint","nodeType":"ElementaryTypeName","src":"2921:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3253,"mutability":"mutable","name":"reserveIn","nodeType":"VariableDeclaration","overrides":null,"scope":3309,"src":"2937:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3252,"name":"uint","nodeType":"ElementaryTypeName","src":"2937:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3255,"mutability":"mutable","name":"reserveOut","nodeType":"VariableDeclaration","overrides":null,"scope":3309,"src":"2953:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3254,"name":"uint","nodeType":"ElementaryTypeName","src":"2953:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2920:49:7"},"returnParameters":{"id":3259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3258,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":3309,"src":"2993:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3257,"name":"uint","nodeType":"ElementaryTypeName","src":"2993:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2992:15:7"},"scope":3476,"src":"2900:470:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3389,"nodeType":"Block","src":"3576:386:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3323,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"3595:4:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3595:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"hexValue":"32","id":3325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3610:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3595:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e4c6962726172793a20494e56414c49445f50415448","id":3327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3613:31:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_17131ae6ef2d8749f9af0a1e791c2fb949a4d88c18fce9a939194e0e991b0a27","typeString":"literal_string \"PangolinLibrary: INVALID_PATH\""},"value":"PangolinLibrary: INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17131ae6ef2d8749f9af0a1e791c2fb949a4d88c18fce9a939194e0e991b0a27","typeString":"literal_string \"PangolinLibrary: INVALID_PATH\""}],"id":3322,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3587:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3587:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3329,"nodeType":"ExpressionStatement","src":"3587:58:7"},{"expression":{"argumentTypes":null,"id":3337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3330,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3320,"src":"3656:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3334,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"3677:4:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3677:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3666:10:7","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":3331,"name":"uint","nodeType":"ElementaryTypeName","src":"3670:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3332,"length":null,"nodeType":"ArrayTypeName","src":"3670:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":3336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3666:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"3656:33:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3338,"nodeType":"ExpressionStatement","src":"3656:33:7"},{"expression":{"argumentTypes":null,"id":3343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3339,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3320,"src":"3700:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3341,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":3340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3708:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3700:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3342,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3313,"src":"3713:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3700:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3344,"nodeType":"ExpressionStatement","src":"3700:21:7"},{"body":{"id":3387,"nodeType":"Block","src":"3771:184:7","statements":[{"assignments":[3358,3360],"declarations":[{"constant":false,"id":3358,"mutability":"mutable","name":"reserveIn","nodeType":"VariableDeclaration","overrides":null,"scope":3387,"src":"3787:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3357,"name":"uint","nodeType":"ElementaryTypeName","src":"3787:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3360,"mutability":"mutable","name":"reserveOut","nodeType":"VariableDeclaration","overrides":null,"scope":3387,"src":"3803:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3359,"name":"uint","nodeType":"ElementaryTypeName","src":"3803:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3372,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3362,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"3834:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3363,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"3843:4:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3365,"indexExpression":{"argumentTypes":null,"id":3364,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"3848:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3843:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3366,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"3852:4:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3370,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"3857:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":3368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3861:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3857:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3852:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3361,"name":"getReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"3822:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,address,address) view returns (uint256,uint256)"}},"id":3371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3822:42:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3786:78:7"},{"expression":{"argumentTypes":null,"id":3385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3373,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3320,"src":"3879:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3377,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3374,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"3887:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":3375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3891:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3887:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3879:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3379,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3320,"src":"3909:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3381,"indexExpression":{"argumentTypes":null,"id":3380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"3917:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3909:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3382,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3358,"src":"3921:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3383,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3360,"src":"3932:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3378,"name":"getAmountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3249,"src":"3896:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3896:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3879:64:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3386,"nodeType":"ExpressionStatement","src":"3879:64:7"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3348,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"3745:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3349,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"3749:4:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3749:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":3351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3763:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3749:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3745:19:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3388,"initializationExpression":{"assignments":[3346],"declarations":[{"constant":false,"id":3346,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","overrides":null,"scope":3388,"src":"3737:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3345,"name":"uint","nodeType":"ElementaryTypeName","src":"3737:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3347,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"3737:6:7"},"loopExpression":{"expression":{"argumentTypes":null,"id":3355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3766:3:7","subExpression":{"argumentTypes":null,"id":3354,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"3766:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3356,"nodeType":"ExpressionStatement","src":"3766:3:7"},"nodeType":"ForStatement","src":"3732:223:7"}]},"documentation":null,"id":3390,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountsOut","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3311,"mutability":"mutable","name":"factory","nodeType":"VariableDeclaration","overrides":null,"scope":3390,"src":"3475:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3310,"name":"address","nodeType":"ElementaryTypeName","src":"3475:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3313,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":3390,"src":"3492:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3312,"name":"uint","nodeType":"ElementaryTypeName","src":"3492:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3316,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":3390,"src":"3507:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3314,"name":"address","nodeType":"ElementaryTypeName","src":"3507:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3315,"length":null,"nodeType":"ArrayTypeName","src":"3507:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"}],"src":"3474:55:7"},"returnParameters":{"id":3321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3320,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":3390,"src":"3553:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3318,"name":"uint","nodeType":"ElementaryTypeName","src":"3553:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3319,"length":null,"nodeType":"ArrayTypeName","src":"3553:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"3552:23:7"},"scope":3476,"src":"3452:510:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3474,"nodeType":"Block","src":"4167:407:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3404,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"4186:4:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4186:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"hexValue":"32","id":3406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4201:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4186:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50616e676f6c696e4c6962726172793a20494e56414c49445f50415448","id":3408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4204:31:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_17131ae6ef2d8749f9af0a1e791c2fb949a4d88c18fce9a939194e0e991b0a27","typeString":"literal_string \"PangolinLibrary: INVALID_PATH\""},"value":"PangolinLibrary: INVALID_PATH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17131ae6ef2d8749f9af0a1e791c2fb949a4d88c18fce9a939194e0e991b0a27","typeString":"literal_string \"PangolinLibrary: INVALID_PATH\""}],"id":3403,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4178:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4178:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3410,"nodeType":"ExpressionStatement","src":"4178:58:7"},{"expression":{"argumentTypes":null,"id":3418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3411,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3401,"src":"4247:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3415,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"4268:4:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4268:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4257:10:7","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":3412,"name":"uint","nodeType":"ElementaryTypeName","src":"4261:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3413,"length":null,"nodeType":"ArrayTypeName","src":"4261:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":3417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4257:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"4247:33:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3419,"nodeType":"ExpressionStatement","src":"4247:33:7"},{"expression":{"argumentTypes":null,"id":3427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3420,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3401,"src":"4291:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3425,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3421,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3401,"src":"4299:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4299:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":3423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4316:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4299:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4291:27:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3426,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3394,"src":"4321:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4291:39:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3428,"nodeType":"ExpressionStatement","src":"4291:39:7"},{"body":{"id":3472,"nodeType":"Block","src":"4384:183:7","statements":[{"assignments":[3443,3445],"declarations":[{"constant":false,"id":3443,"mutability":"mutable","name":"reserveIn","nodeType":"VariableDeclaration","overrides":null,"scope":3472,"src":"4400:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3442,"name":"uint","nodeType":"ElementaryTypeName","src":"4400:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3445,"mutability":"mutable","name":"reserveOut","nodeType":"VariableDeclaration","overrides":null,"scope":3472,"src":"4416:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3444,"name":"uint","nodeType":"ElementaryTypeName","src":"4416:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3457,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3447,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3392,"src":"4447:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3448,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"4456:4:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3452,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3449,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3430,"src":"4461:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":3450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4465:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4461:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4456:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3453,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"4469:4:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3455,"indexExpression":{"argumentTypes":null,"id":3454,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3430,"src":"4474:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4469:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3446,"name":"getReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"4435:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,address,address) view returns (uint256,uint256)"}},"id":3456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4435:42:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4399:78:7"},{"expression":{"argumentTypes":null,"id":3470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3458,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3401,"src":"4492:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3462,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3459,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3430,"src":"4500:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":3460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4504:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4500:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4492:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3464,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3401,"src":"4521:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3466,"indexExpression":{"argumentTypes":null,"id":3465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3430,"src":"4529:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4521:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3467,"name":"reserveIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3443,"src":"4533:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3468,"name":"reserveOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3445,"src":"4544:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3463,"name":"getAmountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3309,"src":"4509:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4509:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4492:63:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3471,"nodeType":"ExpressionStatement","src":"4492:63:7"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3436,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3430,"src":"4372:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4376:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4372:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3473,"initializationExpression":{"assignments":[3430],"declarations":[{"constant":false,"id":3430,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","overrides":null,"scope":3473,"src":"4346:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3429,"name":"uint","nodeType":"ElementaryTypeName","src":"4346:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3435,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3431,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"4355:4:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4355:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":3433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4369:1:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4355:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4346:24:7"},"loopExpression":{"expression":{"argumentTypes":null,"id":3440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"4379:3:7","subExpression":{"argumentTypes":null,"id":3439,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3430,"src":"4379:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3441,"nodeType":"ExpressionStatement","src":"4379:3:7"},"nodeType":"ForStatement","src":"4341:226:7"}]},"documentation":null,"id":3475,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountsIn","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3392,"mutability":"mutable","name":"factory","nodeType":"VariableDeclaration","overrides":null,"scope":3475,"src":"4065:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3391,"name":"address","nodeType":"ElementaryTypeName","src":"4065:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3394,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":3475,"src":"4082:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3393,"name":"uint","nodeType":"ElementaryTypeName","src":"4082:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3397,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":3475,"src":"4098:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3395,"name":"address","nodeType":"ElementaryTypeName","src":"4098:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3396,"length":null,"nodeType":"ArrayTypeName","src":"4098:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"}],"src":"4064:56:7"},"returnParameters":{"id":3402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3401,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":3475,"src":"4144:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3399,"name":"uint","nodeType":"ElementaryTypeName","src":"4144:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3400,"length":null,"nodeType":"ArrayTypeName","src":"4144:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"4143:23:7"},"scope":3476,"src":"4043:531:7","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":3477,"src":"181:4396:7"}],"src":"0:4579:7"},"id":7},"contracts/pangolin-periphery/libraries/SafeMath.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/libraries/SafeMath.sol","exportedSymbols":{"SafeMath":[3551]},"id":3552,"nodeType":"SourceUnit","nodes":[{"id":3478,"literals":["solidity",">=","0.6",".6","<","0.8",".0"],"nodeType":"PragmaDirective","src":"0:31:8"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":null,"fullyImplemented":true,"id":3551,"linearizedBaseContracts":[3551],"name":"SafeMath","nodeType":"ContractDefinition","nodes":[{"body":{"id":3499,"nodeType":"Block","src":"227:68:8","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":3492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3488,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3485,"src":"247:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3489,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3480,"src":"251:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":3490,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3482,"src":"255:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"251:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"247:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"246:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":3494,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3480,"src":"261:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"246:16:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"64732d6d6174682d6164642d6f766572666c6f77","id":3496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"264:22:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db","typeString":"literal_string \"ds-math-add-overflow\""},"value":"ds-math-add-overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db","typeString":"literal_string \"ds-math-add-overflow\""}],"id":3487,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"238:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"238:49:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3498,"nodeType":"ExpressionStatement","src":"238:49:8"}]},"documentation":null,"id":3500,"implemented":true,"kind":"function","modifiers":[],"name":"add","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3480,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","overrides":null,"scope":3500,"src":"180:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3479,"name":"uint","nodeType":"ElementaryTypeName","src":"180:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3482,"mutability":"mutable","name":"y","nodeType":"VariableDeclaration","overrides":null,"scope":3500,"src":"188:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3481,"name":"uint","nodeType":"ElementaryTypeName","src":"188:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"179:16:8"},"returnParameters":{"id":3486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3485,"mutability":"mutable","name":"z","nodeType":"VariableDeclaration","overrides":null,"scope":3500,"src":"219:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3484,"name":"uint","nodeType":"ElementaryTypeName","src":"219:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"218:8:8"},"scope":3551,"src":"167:128:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3521,"nodeType":"Block","src":"363:69:8","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":3514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3510,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3507,"src":"383:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3511,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3502,"src":"387:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":3512,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"391:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"387:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"383:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3515,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"382:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":3516,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3502,"src":"397:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"382:16:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"64732d6d6174682d7375622d756e646572666c6f77","id":3518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"400:23:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590","typeString":"literal_string \"ds-math-sub-underflow\""},"value":"ds-math-sub-underflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590","typeString":"literal_string \"ds-math-sub-underflow\""}],"id":3509,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"374:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"374:50:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3520,"nodeType":"ExpressionStatement","src":"374:50:8"}]},"documentation":null,"id":3522,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3502,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","overrides":null,"scope":3522,"src":"316:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3501,"name":"uint","nodeType":"ElementaryTypeName","src":"316:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3504,"mutability":"mutable","name":"y","nodeType":"VariableDeclaration","overrides":null,"scope":3522,"src":"324:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3503,"name":"uint","nodeType":"ElementaryTypeName","src":"324:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"315:16:8"},"returnParameters":{"id":3508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3507,"mutability":"mutable","name":"z","nodeType":"VariableDeclaration","overrides":null,"scope":3522,"src":"355:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3506,"name":"uint","nodeType":"ElementaryTypeName","src":"355:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"354:8:8"},"scope":3551,"src":"303:129:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3549,"nodeType":"Block","src":"500:82:8","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3532,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"519:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"524:1:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"519:6:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":3539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3535,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3529,"src":"530:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3536,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"534:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":3537,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"538:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"534:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"530:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3540,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"529:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":3541,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"543:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"529:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3543,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"548:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"529:20:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"519:30:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"64732d6d6174682d6d756c2d6f766572666c6f77","id":3546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"551:22:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd","typeString":"literal_string \"ds-math-mul-overflow\""},"value":"ds-math-mul-overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd","typeString":"literal_string \"ds-math-mul-overflow\""}],"id":3531,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"511:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"511:63:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3548,"nodeType":"ExpressionStatement","src":"511:63:8"}]},"documentation":null,"id":3550,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3524,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","overrides":null,"scope":3550,"src":"453:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3523,"name":"uint","nodeType":"ElementaryTypeName","src":"453:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3526,"mutability":"mutable","name":"y","nodeType":"VariableDeclaration","overrides":null,"scope":3550,"src":"461:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3525,"name":"uint","nodeType":"ElementaryTypeName","src":"461:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"452:16:8"},"returnParameters":{"id":3530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3529,"mutability":"mutable","name":"z","nodeType":"VariableDeclaration","overrides":null,"scope":3550,"src":"492:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3528,"name":"uint","nodeType":"ElementaryTypeName","src":"492:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"491:8:8"},"scope":3551,"src":"440:142:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3552,"src":"143:442:8"}],"src":"0:587:8"},"id":8},"contracts/pangolin-periphery/test/DeflatingERC20.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/test/DeflatingERC20.sol","exportedSymbols":{"DeflatingERC20":[3966]},"id":3967,"nodeType":"SourceUnit","nodes":[{"id":3553,"literals":["solidity","=","0.6",".6"],"nodeType":"PragmaDirective","src":"0:23:9"},{"absolutePath":"contracts/pangolin-periphery/libraries/SafeMath.sol","file":"../libraries/SafeMath.sol","id":3554,"nodeType":"ImportDirective","scope":3967,"sourceUnit":3552,"src":"27:35:9","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":3966,"linearizedBaseContracts":[3966],"name":"DeflatingERC20","nodeType":"ContractDefinition","nodes":[{"id":3557,"libraryName":{"contractScope":null,"id":3555,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":3551,"src":"103:8:9","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$3551","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"97:24:9","typeName":{"id":3556,"name":"uint","nodeType":"ElementaryTypeName","src":"116:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"functionSelector":"06fdde03","id":3560,"mutability":"constant","name":"name","nodeType":"VariableDeclaration","overrides":null,"scope":3966,"src":"129:52:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3558,"name":"string","nodeType":"ElementaryTypeName","src":"129:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"4465666c6174696e67205465737420546f6b656e","id":3559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159:22:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f89e31130e6fd3d87d62a1ac2770fba58bed5a06c47ce70fa97f8218b1b2743a","typeString":"literal_string \"Deflating Test Token\""},"value":"Deflating Test Token"},"visibility":"public"},{"constant":true,"functionSelector":"95d89b41","id":3563,"mutability":"constant","name":"symbol","nodeType":"VariableDeclaration","overrides":null,"scope":3966,"src":"188:37:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3561,"name":"string","nodeType":"ElementaryTypeName","src":"188:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"445454","id":3562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"220:5:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0862d7701ae2a04548299440d8e9bcde598aaa04f40d2b263697efe0cc6c0bb4","typeString":"literal_string \"DTT\""},"value":"DTT"},"visibility":"public"},{"constant":true,"functionSelector":"313ce567","id":3566,"mutability":"constant","name":"decimals","nodeType":"VariableDeclaration","overrides":null,"scope":3966,"src":"232:35:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3564,"name":"uint8","nodeType":"ElementaryTypeName","src":"232:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"argumentTypes":null,"hexValue":"3138","id":3565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"265:2:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"constant":false,"functionSelector":"18160ddd","id":3568,"mutability":"mutable","name":"totalSupply","nodeType":"VariableDeclaration","overrides":null,"scope":3966,"src":"274:24:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3567,"name":"uint","nodeType":"ElementaryTypeName","src":"274:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"functionSelector":"70a08231","id":3572,"mutability":"mutable","name":"balanceOf","nodeType":"VariableDeclaration","overrides":null,"scope":3966,"src":"305:41:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":3571,"keyType":{"id":3569,"name":"address","nodeType":"ElementaryTypeName","src":"313:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"305:24:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3570,"name":"uint","nodeType":"ElementaryTypeName","src":"324:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":false,"functionSelector":"dd62ed3e","id":3578,"mutability":"mutable","name":"allowance","nodeType":"VariableDeclaration","overrides":null,"scope":3966,"src":"353:61:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":3577,"keyType":{"id":3573,"name":"address","nodeType":"ElementaryTypeName","src":"361:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"353:44:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":3576,"keyType":{"id":3574,"name":"address","nodeType":"ElementaryTypeName","src":"380:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"372:24:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3575,"name":"uint","nodeType":"ElementaryTypeName","src":"391:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"public"},{"constant":false,"functionSelector":"3644e515","id":3580,"mutability":"mutable","name":"DOMAIN_SEPARATOR","nodeType":"VariableDeclaration","overrides":null,"scope":3966,"src":"423:31:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3579,"name":"bytes32","nodeType":"ElementaryTypeName","src":"423:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"public"},{"constant":true,"functionSelector":"30adf81f","id":3583,"mutability":"constant","name":"PERMIT_TYPEHASH","nodeType":"VariableDeclaration","overrides":null,"scope":3966,"src":"566:108:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"566:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"hexValue":"307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339","id":3582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"608:66:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1","typeString":"int_const 4995...(69 digits omitted)...3241"},"value":"0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9"},"visibility":"public"},{"constant":false,"functionSelector":"7ecebe00","id":3587,"mutability":"mutable","name":"nonces","nodeType":"VariableDeclaration","overrides":null,"scope":3966,"src":"681:38:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":3586,"keyType":{"id":3584,"name":"address","nodeType":"ElementaryTypeName","src":"689:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"681:24:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3585,"name":"uint","nodeType":"ElementaryTypeName","src":"700:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":3595,"name":"Approval","nodeType":"EventDefinition","parameters":{"id":3594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3589,"indexed":true,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":3595,"src":"743:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3588,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3591,"indexed":true,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":3595,"src":"766:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3590,"name":"address","nodeType":"ElementaryTypeName","src":"766:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3593,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":3595,"src":"791:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3592,"name":"uint","nodeType":"ElementaryTypeName","src":"791:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"742:60:9"},"src":"728:75:9"},{"anonymous":false,"documentation":null,"id":3603,"name":"Transfer","nodeType":"EventDefinition","parameters":{"id":3602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3597,"indexed":true,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":3603,"src":"824:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3596,"name":"address","nodeType":"ElementaryTypeName","src":"824:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3599,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":3603,"src":"846:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3598,"name":"address","nodeType":"ElementaryTypeName","src":"846:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3601,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":3603,"src":"866:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3600,"name":"uint","nodeType":"ElementaryTypeName","src":"866:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"823:54:9"},"src":"809:69:9"},{"body":{"id":3646,"nodeType":"Block","src":"924:481:9","statements":[{"assignments":[3609],"declarations":[{"constant":false,"id":3609,"mutability":"mutable","name":"chainId","nodeType":"VariableDeclaration","overrides":null,"scope":3646,"src":"935:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3608,"name":"uint","nodeType":"ElementaryTypeName","src":"935:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3610,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"935:12:9"},{"AST":{"nodeType":"YulBlock","src":"967:46:9","statements":[{"nodeType":"YulAssignment","src":"982:20:9","value":{"arguments":[],"functionName":{"name":"chainid","nodeType":"YulIdentifier","src":"993:7:9"},"nodeType":"YulFunctionCall","src":"993:9:9"},"variableNames":[{"name":"chainId","nodeType":"YulIdentifier","src":"982:7:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":3609,"isOffset":false,"isSlot":false,"src":"982:7:9","valueSize":1}],"id":3611,"nodeType":"InlineAssembly","src":"958:55:9"},{"expression":{"argumentTypes":null,"id":3638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3612,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3580,"src":"1023:16:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":3617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1105:84:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":3616,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1095:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1095:95:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3622,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"1225:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3620,"name":"bytes","nodeType":"ElementaryTypeName","src":"1219:5:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1219:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3619,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1209:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1209:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":3628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1266:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":3627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1260:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3626,"name":"bytes","nodeType":"ElementaryTypeName","src":"1260:5:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1260:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3625,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1250:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1250:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3631,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3609,"src":"1290:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3634,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1324:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_DeflatingERC20_$3966","typeString":"contract DeflatingERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DeflatingERC20_$3966","typeString":"contract DeflatingERC20"}],"id":3633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1316:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3632,"name":"address","nodeType":"ElementaryTypeName","src":"1316:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1316:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":3614,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1066:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1066:10:9","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1066:278:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3613,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1042:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1042:313:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1023:332:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3639,"nodeType":"ExpressionStatement","src":"1023:332:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3641,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1372:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1372:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3643,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"1384:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3640,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3682,"src":"1366:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1366:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3645,"nodeType":"ExpressionStatement","src":"1366:31:9"}]},"documentation":null,"id":3647,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3605,"mutability":"mutable","name":"_totalSupply","nodeType":"VariableDeclaration","overrides":null,"scope":3647,"src":"898:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3604,"name":"uint","nodeType":"ElementaryTypeName","src":"898:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"897:19:9"},"returnParameters":{"id":3607,"nodeType":"ParameterList","parameters":[],"src":"924:0:9"},"scope":3966,"src":"886:519:9","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3681,"nodeType":"Block","src":"1461:153:9","statements":[{"expression":{"argumentTypes":null,"id":3659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3654,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"1472:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3657,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3651,"src":"1502:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3655,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"1486:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":3500,"src":"1486:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1486:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1472:36:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3660,"nodeType":"ExpressionStatement","src":"1472:36:9"},{"expression":{"argumentTypes":null,"id":3670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3661,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"1519:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3663,"indexExpression":{"argumentTypes":null,"id":3662,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"1529:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1519:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3668,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3651,"src":"1553:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3664,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"1535:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3666,"indexExpression":{"argumentTypes":null,"id":3665,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"1545:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1535:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":3500,"src":"1535:17:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1535:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1519:40:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3671,"nodeType":"ExpressionStatement","src":"1519:40:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1592:1:9","subdenomination":null,"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":3674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1584:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3673,"name":"address","nodeType":"ElementaryTypeName","src":"1584:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1584:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3677,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"1596:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3678,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3651,"src":"1600:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3672,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3603,"src":"1575:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1575:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3680,"nodeType":"EmitStatement","src":"1570:36:9"}]},"documentation":null,"id":3682,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3649,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":3682,"src":"1428:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3648,"name":"address","nodeType":"ElementaryTypeName","src":"1428:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3651,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":3682,"src":"1440:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3650,"name":"uint","nodeType":"ElementaryTypeName","src":"1440:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1427:24:9"},"returnParameters":{"id":3653,"nodeType":"ParameterList","parameters":[],"src":"1461:0:9"},"scope":3966,"src":"1413:201:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3716,"nodeType":"Block","src":"1672:159:9","statements":[{"expression":{"argumentTypes":null,"id":3698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3689,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"1683:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3691,"indexExpression":{"argumentTypes":null,"id":3690,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3684,"src":"1693:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1683:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3696,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3686,"src":"1721:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3692,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"1701:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3694,"indexExpression":{"argumentTypes":null,"id":3693,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3684,"src":"1711:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1701:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"1701:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1701:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1683:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3699,"nodeType":"ExpressionStatement","src":"1683:44:9"},{"expression":{"argumentTypes":null,"id":3705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3700,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"1738:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3703,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3686,"src":"1768:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3701,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"1752:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"1752:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1752:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1738:36:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3706,"nodeType":"ExpressionStatement","src":"1738:36:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3708,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3684,"src":"1799:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1813:1:9","subdenomination":null,"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":3710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1805:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3709,"name":"address","nodeType":"ElementaryTypeName","src":"1805:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1805:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3713,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3686,"src":"1817:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3707,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3603,"src":"1790:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1790:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3715,"nodeType":"EmitStatement","src":"1785:38:9"}]},"documentation":null,"id":3717,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3684,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":3717,"src":"1637:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3683,"name":"address","nodeType":"ElementaryTypeName","src":"1637:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3686,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":3717,"src":"1651:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3685,"name":"uint","nodeType":"ElementaryTypeName","src":"1651:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1636:26:9"},"returnParameters":{"id":3688,"nodeType":"ParameterList","parameters":[],"src":"1672:0:9"},"scope":3966,"src":"1622:209:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3740,"nodeType":"Block","src":"1909:99:9","statements":[{"expression":{"argumentTypes":null,"id":3732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3726,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"1920:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3729,"indexExpression":{"argumentTypes":null,"id":3727,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3719,"src":"1930:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1920:16:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3730,"indexExpression":{"argumentTypes":null,"id":3728,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3721,"src":"1937:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1920:25:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3731,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3723,"src":"1948:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1920:33:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3733,"nodeType":"ExpressionStatement","src":"1920:33:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3735,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3719,"src":"1978:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3736,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3721,"src":"1985:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3737,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3723,"src":"1994:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3734,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"1969:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1969:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3739,"nodeType":"EmitStatement","src":"1964:36:9"}]},"documentation":null,"id":3741,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3719,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":3741,"src":"1857:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3718,"name":"address","nodeType":"ElementaryTypeName","src":"1857:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3721,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":3741,"src":"1872:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3720,"name":"address","nodeType":"ElementaryTypeName","src":"1872:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3723,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":3741,"src":"1889:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3722,"name":"uint","nodeType":"ElementaryTypeName","src":"1889:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1856:44:9"},"returnParameters":{"id":3725,"nodeType":"ParameterList","parameters":[],"src":"1909:0:9"},"scope":3966,"src":"1839:169:9","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":3796,"nodeType":"Block","src":"2081:310:9","statements":[{"assignments":[3751],"declarations":[{"constant":false,"id":3751,"mutability":"mutable","name":"burnAmount","nodeType":"VariableDeclaration","overrides":null,"scope":3796,"src":"2092:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3750,"name":"uint","nodeType":"ElementaryTypeName","src":"2092:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3755,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3752,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3747,"src":"2110:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":3753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2118:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2110:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2092:29:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3757,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3743,"src":"2138:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3758,"name":"burnAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"2144:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3756,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3717,"src":"2132:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2132:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3760,"nodeType":"ExpressionStatement","src":"2132:23:9"},{"assignments":[3762],"declarations":[{"constant":false,"id":3762,"mutability":"mutable","name":"transferAmount","nodeType":"VariableDeclaration","overrides":null,"scope":3796,"src":"2166:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3761,"name":"uint","nodeType":"ElementaryTypeName","src":"2166:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3767,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3765,"name":"burnAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"2198:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3763,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3747,"src":"2188:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"2188:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2188:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2166:43:9"},{"expression":{"argumentTypes":null,"id":3777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3768,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"2220:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3770,"indexExpression":{"argumentTypes":null,"id":3769,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3743,"src":"2230:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2220:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3775,"name":"transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3762,"src":"2258:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3771,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"2238:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3773,"indexExpression":{"argumentTypes":null,"id":3772,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3743,"src":"2248:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2238:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"2238:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2238:35:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2220:53:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3778,"nodeType":"ExpressionStatement","src":"2220:53:9"},{"expression":{"argumentTypes":null,"id":3788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3779,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"2284:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3781,"indexExpression":{"argumentTypes":null,"id":3780,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3745,"src":"2294:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2284:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3786,"name":"transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3762,"src":"2318:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3782,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"2300:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3784,"indexExpression":{"argumentTypes":null,"id":3783,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3745,"src":"2310:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2300:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":3500,"src":"2300:17:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2300:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2284:49:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3789,"nodeType":"ExpressionStatement","src":"2284:49:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3791,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3743,"src":"2358:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3792,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3745,"src":"2364:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3793,"name":"transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3762,"src":"2368:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3790,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3603,"src":"2349:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2349:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3795,"nodeType":"EmitStatement","src":"2344:39:9"}]},"documentation":null,"id":3797,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3743,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":3797,"src":"2035:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3742,"name":"address","nodeType":"ElementaryTypeName","src":"2035:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3745,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":3797,"src":"2049:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3744,"name":"address","nodeType":"ElementaryTypeName","src":"2049:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3747,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":3797,"src":"2061:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3746,"name":"uint","nodeType":"ElementaryTypeName","src":"2061:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2034:38:9"},"returnParameters":{"id":3749,"nodeType":"ParameterList","parameters":[],"src":"2081:0:9"},"scope":3966,"src":"2016:375:9","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":3815,"nodeType":"Block","src":"2469:77:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3807,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2489:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2489:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3809,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"2501:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3810,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3801,"src":"2510:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3806,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"2480:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2480:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3812,"nodeType":"ExpressionStatement","src":"2480:36:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":3813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2534:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3805,"id":3814,"nodeType":"Return","src":"2527:11:9"}]},"documentation":null,"functionSelector":"095ea7b3","id":3816,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3799,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":3816,"src":"2416:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3798,"name":"address","nodeType":"ElementaryTypeName","src":"2416:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3801,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":3816,"src":"2433:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3800,"name":"uint","nodeType":"ElementaryTypeName","src":"2433:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2415:29:9"},"returnParameters":{"id":3805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3804,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":3816,"src":"2463:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3803,"name":"bool","nodeType":"ElementaryTypeName","src":"2463:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2462:6:9"},"scope":3966,"src":"2399:147:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3834,"nodeType":"Block","src":"2620:73:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3826,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2641:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2641:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3828,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"2653:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3829,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3820,"src":"2657:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3825,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"2631:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2631:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3831,"nodeType":"ExpressionStatement","src":"2631:32:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":3832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2681:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3824,"id":3833,"nodeType":"Return","src":"2674:11:9"}]},"documentation":null,"functionSelector":"a9059cbb","id":3835,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3818,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":3835,"src":"2572:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3817,"name":"address","nodeType":"ElementaryTypeName","src":"2572:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3820,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":3835,"src":"2584:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3819,"name":"uint","nodeType":"ElementaryTypeName","src":"2584:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2571:24:9"},"returnParameters":{"id":3824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3823,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":3835,"src":"2614:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3822,"name":"bool","nodeType":"ElementaryTypeName","src":"2614:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2613:6:9"},"scope":3966,"src":"2554:139:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3885,"nodeType":"Block","src":"2785:217:9","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3846,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"2800:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3848,"indexExpression":{"argumentTypes":null,"id":3847,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3837,"src":"2810:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2800:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3851,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3849,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2816:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2816:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2800:27:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2836:2:9","subExpression":{"argumentTypes":null,"hexValue":"31","id":3854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2837:1:9","subdenomination":null,"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":3853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2831:4:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3852,"name":"uint","nodeType":"ElementaryTypeName","src":"2831:4:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2831:8:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2800:39:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3876,"nodeType":"IfStatement","src":"2796:140:9","trueBody":{"id":3875,"nodeType":"Block","src":"2841:95:9","statements":[{"expression":{"argumentTypes":null,"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3858,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"2856:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3862,"indexExpression":{"argumentTypes":null,"id":3859,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3837,"src":"2866:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2856:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3863,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3860,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2872:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2872:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2856:27:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3871,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3841,"src":"2918:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3864,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"2886:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3866,"indexExpression":{"argumentTypes":null,"id":3865,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3837,"src":"2896:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2886:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3869,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3867,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2902:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2902:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2886:27:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"2886:31:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2886:38:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2856:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3874,"nodeType":"ExpressionStatement","src":"2856:68:9"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3878,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3837,"src":"2956:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3879,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"2962:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3880,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3841,"src":"2966:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3877,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"2946:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2946:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3882,"nodeType":"ExpressionStatement","src":"2946:26:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":3883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2990:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3845,"id":3884,"nodeType":"Return","src":"2983:11:9"}]},"documentation":null,"functionSelector":"23b872dd","id":3886,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3837,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":3886,"src":"2723:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3836,"name":"address","nodeType":"ElementaryTypeName","src":"2723:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3839,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":3886,"src":"2737:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3838,"name":"address","nodeType":"ElementaryTypeName","src":"2737:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3841,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":3886,"src":"2749:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3840,"name":"uint","nodeType":"ElementaryTypeName","src":"2749:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2722:38:9"},"returnParameters":{"id":3845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3844,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":3886,"src":"2779:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3843,"name":"bool","nodeType":"ElementaryTypeName","src":"2779:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2778:6:9"},"scope":3966,"src":"2701:301:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3964,"nodeType":"Block","src":"3125:537:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3904,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3894,"src":"3144:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3905,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3156:5:9","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3156:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3144:27:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45585049524544","id":3908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3173:9:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a","typeString":"literal_string \"EXPIRED\""},"value":"EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a","typeString":"literal_string \"EXPIRED\""}],"id":3903,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3136:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3136:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3910,"nodeType":"ExpressionStatement","src":"3136:47:9"},{"assignments":[3912],"declarations":[{"constant":false,"id":3912,"mutability":"mutable","name":"digest","nodeType":"VariableDeclaration","overrides":null,"scope":3964,"src":"3194:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3911,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3194:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":3934,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"1901","id":3916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3270:10:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string \"\u0019\u0001\""},"value":"\u0019\u0001"},{"argumentTypes":null,"id":3917,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3580,"src":"3299:16:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3921,"name":"PERMIT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"3355:15:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3922,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3888,"src":"3372:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3923,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3890,"src":"3379:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3924,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3892,"src":"3388:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3395:15:9","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3925,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3587,"src":"3395:6:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3927,"indexExpression":{"argumentTypes":null,"id":3926,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3888,"src":"3402:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3395:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3929,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3894,"src":"3412:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3919,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3344:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3344:10:9","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3344:77:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3918,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3334:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3334:88:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string \"\u0019\u0001\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":3914,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3235:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3235:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3235:202:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3913,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3211:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3211:237:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3194:254:9"},{"assignments":[3936],"declarations":[{"constant":false,"id":3936,"mutability":"mutable","name":"recoveredAddress","nodeType":"VariableDeclaration","overrides":null,"scope":3964,"src":"3459:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3935,"name":"address","nodeType":"ElementaryTypeName","src":"3459:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":3943,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3938,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"3496:6:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3939,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"3504:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":3940,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"3507:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3941,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3900,"src":"3510:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3937,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"3486:9:9","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3486:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3459:53:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3945,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3936,"src":"3531:16:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3559:1:9","subdenomination":null,"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":3947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3551:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3946,"name":"address","nodeType":"ElementaryTypeName","src":"3551:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3551:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3531:30:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3951,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3936,"src":"3565:16:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3952,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3888,"src":"3585:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3565:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3531:59:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"494e56414c49445f5349474e4154555245","id":3955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3592:19:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""},"value":"INVALID_SIGNATURE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""}],"id":3944,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3523:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3523:89:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3957,"nodeType":"ExpressionStatement","src":"3523:89:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3959,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3888,"src":"3632:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3960,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3890,"src":"3639:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3961,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3892,"src":"3648:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3958,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"3623:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3623:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3963,"nodeType":"ExpressionStatement","src":"3623:31:9"}]},"documentation":null,"functionSelector":"d505accf","id":3965,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":3901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3888,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":3965,"src":"3026:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3887,"name":"address","nodeType":"ElementaryTypeName","src":"3026:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3890,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":3965,"src":"3041:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3889,"name":"address","nodeType":"ElementaryTypeName","src":"3041:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3892,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":3965,"src":"3058:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3891,"name":"uint","nodeType":"ElementaryTypeName","src":"3058:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3894,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":3965,"src":"3070:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3893,"name":"uint","nodeType":"ElementaryTypeName","src":"3070:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3896,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":3965,"src":"3085:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3895,"name":"uint8","nodeType":"ElementaryTypeName","src":"3085:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":3898,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":3965,"src":"3094:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3897,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3094:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":3900,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":3965,"src":"3105:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3105:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3025:90:9"},"returnParameters":{"id":3902,"nodeType":"ParameterList","parameters":[],"src":"3125:0:9"},"scope":3966,"src":"3010:652:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3967,"src":"66:3599:9"}],"src":"0:3667:9"},"id":9},"contracts/pangolin-periphery/test/ERC20.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/test/ERC20.sol","exportedSymbols":{"ERC20":[4363]},"id":4364,"nodeType":"SourceUnit","nodes":[{"id":3968,"literals":["solidity","=","0.6",".6"],"nodeType":"PragmaDirective","src":"0:23:10"},{"absolutePath":"contracts/pangolin-periphery/libraries/SafeMath.sol","file":"../libraries/SafeMath.sol","id":3969,"nodeType":"ImportDirective","scope":4364,"sourceUnit":3552,"src":"27:35:10","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":4363,"linearizedBaseContracts":[4363],"name":"ERC20","nodeType":"ContractDefinition","nodes":[{"id":3972,"libraryName":{"contractScope":null,"id":3970,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":3551,"src":"94:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$3551","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"88:24:10","typeName":{"id":3971,"name":"uint","nodeType":"ElementaryTypeName","src":"107:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"functionSelector":"06fdde03","id":3975,"mutability":"constant","name":"name","nodeType":"VariableDeclaration","overrides":null,"scope":4363,"src":"120:42:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3973,"name":"string","nodeType":"ElementaryTypeName","src":"120:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"5465737420546f6b656e","id":3974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"150:12:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_81e8ad438398ab0d4a2a7ecb159490c091bb27c67ace5181f70084e30fadaea2","typeString":"literal_string \"Test Token\""},"value":"Test Token"},"visibility":"public"},{"constant":true,"functionSelector":"95d89b41","id":3978,"mutability":"constant","name":"symbol","nodeType":"VariableDeclaration","overrides":null,"scope":4363,"src":"169:36:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3976,"name":"string","nodeType":"ElementaryTypeName","src":"169:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"5454","id":3977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"201:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2ac50a34f0da9360cfd7e529a34ccdaa61aa98e2a0ac0928bf981af8e73352ba","typeString":"literal_string \"TT\""},"value":"TT"},"visibility":"public"},{"constant":true,"functionSelector":"313ce567","id":3981,"mutability":"constant","name":"decimals","nodeType":"VariableDeclaration","overrides":null,"scope":4363,"src":"212:35:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3979,"name":"uint8","nodeType":"ElementaryTypeName","src":"212:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"argumentTypes":null,"hexValue":"3138","id":3980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"245:2:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"constant":false,"functionSelector":"18160ddd","id":3983,"mutability":"mutable","name":"totalSupply","nodeType":"VariableDeclaration","overrides":null,"scope":4363,"src":"254:24:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3982,"name":"uint","nodeType":"ElementaryTypeName","src":"254:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"functionSelector":"70a08231","id":3987,"mutability":"mutable","name":"balanceOf","nodeType":"VariableDeclaration","overrides":null,"scope":4363,"src":"285:41:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":3986,"keyType":{"id":3984,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"285:24:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3985,"name":"uint","nodeType":"ElementaryTypeName","src":"304:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":false,"functionSelector":"dd62ed3e","id":3993,"mutability":"mutable","name":"allowance","nodeType":"VariableDeclaration","overrides":null,"scope":4363,"src":"333:61:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":3992,"keyType":{"id":3988,"name":"address","nodeType":"ElementaryTypeName","src":"341:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"333:44:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":3991,"keyType":{"id":3989,"name":"address","nodeType":"ElementaryTypeName","src":"360:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"352:24:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3990,"name":"uint","nodeType":"ElementaryTypeName","src":"371:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"public"},{"constant":false,"functionSelector":"3644e515","id":3995,"mutability":"mutable","name":"DOMAIN_SEPARATOR","nodeType":"VariableDeclaration","overrides":null,"scope":4363,"src":"403:31:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3994,"name":"bytes32","nodeType":"ElementaryTypeName","src":"403:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"public"},{"constant":true,"functionSelector":"30adf81f","id":3998,"mutability":"constant","name":"PERMIT_TYPEHASH","nodeType":"VariableDeclaration","overrides":null,"scope":4363,"src":"546:108:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"546:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"hexValue":"307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339","id":3997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"588:66:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1","typeString":"int_const 4995...(69 digits omitted)...3241"},"value":"0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9"},"visibility":"public"},{"constant":false,"functionSelector":"7ecebe00","id":4002,"mutability":"mutable","name":"nonces","nodeType":"VariableDeclaration","overrides":null,"scope":4363,"src":"661:38:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":4001,"keyType":{"id":3999,"name":"address","nodeType":"ElementaryTypeName","src":"669:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"661:24:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":4000,"name":"uint","nodeType":"ElementaryTypeName","src":"680:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":4010,"name":"Approval","nodeType":"EventDefinition","parameters":{"id":4009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4004,"indexed":true,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":4010,"src":"723:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4003,"name":"address","nodeType":"ElementaryTypeName","src":"723:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4006,"indexed":true,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":4010,"src":"746:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4005,"name":"address","nodeType":"ElementaryTypeName","src":"746:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4008,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4010,"src":"771:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4007,"name":"uint","nodeType":"ElementaryTypeName","src":"771:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"722:60:10"},"src":"708:75:10"},{"anonymous":false,"documentation":null,"id":4018,"name":"Transfer","nodeType":"EventDefinition","parameters":{"id":4017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4012,"indexed":true,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":4018,"src":"804:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4011,"name":"address","nodeType":"ElementaryTypeName","src":"804:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4014,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4018,"src":"826:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4013,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4016,"indexed":false,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4018,"src":"846:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4015,"name":"uint","nodeType":"ElementaryTypeName","src":"846:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"803:54:10"},"src":"789:69:10"},{"body":{"id":4061,"nodeType":"Block","src":"904:481:10","statements":[{"assignments":[4024],"declarations":[{"constant":false,"id":4024,"mutability":"mutable","name":"chainId","nodeType":"VariableDeclaration","overrides":null,"scope":4061,"src":"915:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4023,"name":"uint","nodeType":"ElementaryTypeName","src":"915:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4025,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"915:12:10"},{"AST":{"nodeType":"YulBlock","src":"947:46:10","statements":[{"nodeType":"YulAssignment","src":"962:20:10","value":{"arguments":[],"functionName":{"name":"chainid","nodeType":"YulIdentifier","src":"973:7:10"},"nodeType":"YulFunctionCall","src":"973:9:10"},"variableNames":[{"name":"chainId","nodeType":"YulIdentifier","src":"962:7:10"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":4024,"isOffset":false,"isSlot":false,"src":"962:7:10","valueSize":1}],"id":4026,"nodeType":"InlineAssembly","src":"938:55:10"},{"expression":{"argumentTypes":null,"id":4053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4027,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3995,"src":"1003:16:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":4032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1085:84:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":4031,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1075:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1075:95:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4037,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3975,"src":"1205:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1199:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4035,"name":"bytes","nodeType":"ElementaryTypeName","src":"1199:5:10","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1199:11:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4034,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1189:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1189:22:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":4043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1246:3:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":4042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1240:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4041,"name":"bytes","nodeType":"ElementaryTypeName","src":"1240:5:10","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1240:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4040,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1230:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1230:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4046,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4024,"src":"1270:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4049,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1304:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$4363","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$4363","typeString":"contract ERC20"}],"id":4048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1296:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4047,"name":"address","nodeType":"ElementaryTypeName","src":"1296:7:10","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1296:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":4029,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1046:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1046:10:10","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1046:278:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4028,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1022:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1022:313:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1003:332:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4054,"nodeType":"ExpressionStatement","src":"1003:332:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4056,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1352:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1352:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4058,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4020,"src":"1364:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4055,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4097,"src":"1346:5:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1346:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4060,"nodeType":"ExpressionStatement","src":"1346:31:10"}]},"documentation":null,"id":4062,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4020,"mutability":"mutable","name":"_totalSupply","nodeType":"VariableDeclaration","overrides":null,"scope":4062,"src":"878:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4019,"name":"uint","nodeType":"ElementaryTypeName","src":"878:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"877:19:10"},"returnParameters":{"id":4022,"nodeType":"ParameterList","parameters":[],"src":"904:0:10"},"scope":4363,"src":"866:519:10","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4096,"nodeType":"Block","src":"1441:153:10","statements":[{"expression":{"argumentTypes":null,"id":4074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4069,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3983,"src":"1452:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4072,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"1482:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4070,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3983,"src":"1466:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":3500,"src":"1466:15:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1466:22:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1452:36:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4075,"nodeType":"ExpressionStatement","src":"1452:36:10"},{"expression":{"argumentTypes":null,"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4076,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"1499:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4078,"indexExpression":{"argumentTypes":null,"id":4077,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4064,"src":"1509:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1499:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4083,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"1533:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4079,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"1515:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4081,"indexExpression":{"argumentTypes":null,"id":4080,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4064,"src":"1525:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1515:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":3500,"src":"1515:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1515:24:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1499:40:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4086,"nodeType":"ExpressionStatement","src":"1499:40:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":4090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1572:1:10","subdenomination":null,"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":4089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1564:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4088,"name":"address","nodeType":"ElementaryTypeName","src":"1564:7:10","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1564:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4092,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4064,"src":"1576:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4093,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"1580:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4087,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4018,"src":"1555:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1555:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4095,"nodeType":"EmitStatement","src":"1550:36:10"}]},"documentation":null,"id":4097,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4064,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4097,"src":"1408:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4063,"name":"address","nodeType":"ElementaryTypeName","src":"1408:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4066,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4097,"src":"1420:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4065,"name":"uint","nodeType":"ElementaryTypeName","src":"1420:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1407:24:10"},"returnParameters":{"id":4068,"nodeType":"ParameterList","parameters":[],"src":"1441:0:10"},"scope":4363,"src":"1393:201:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4131,"nodeType":"Block","src":"1652:159:10","statements":[{"expression":{"argumentTypes":null,"id":4113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4104,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"1663:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4106,"indexExpression":{"argumentTypes":null,"id":4105,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4099,"src":"1673:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1663:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4111,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4101,"src":"1701:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4107,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"1681:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4109,"indexExpression":{"argumentTypes":null,"id":4108,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4099,"src":"1691:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1681:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"1681:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1681:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1663:44:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4114,"nodeType":"ExpressionStatement","src":"1663:44:10"},{"expression":{"argumentTypes":null,"id":4120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4115,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3983,"src":"1718:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4118,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4101,"src":"1748:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4116,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3983,"src":"1732:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"1732:15:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1732:22:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1718:36:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4121,"nodeType":"ExpressionStatement","src":"1718:36:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4123,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4099,"src":"1779:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":4126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1793:1:10","subdenomination":null,"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":4125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1785:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4124,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:10","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1785:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4128,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4101,"src":"1797:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4122,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4018,"src":"1770:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1770:33:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4130,"nodeType":"EmitStatement","src":"1765:38:10"}]},"documentation":null,"id":4132,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4099,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":4132,"src":"1617:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4098,"name":"address","nodeType":"ElementaryTypeName","src":"1617:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4101,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4132,"src":"1631:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4100,"name":"uint","nodeType":"ElementaryTypeName","src":"1631:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1616:26:10"},"returnParameters":{"id":4103,"nodeType":"ParameterList","parameters":[],"src":"1652:0:10"},"scope":4363,"src":"1602:209:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4155,"nodeType":"Block","src":"1889:99:10","statements":[{"expression":{"argumentTypes":null,"id":4147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4141,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"1900:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":4144,"indexExpression":{"argumentTypes":null,"id":4142,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4134,"src":"1910:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1900:16:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4145,"indexExpression":{"argumentTypes":null,"id":4143,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4136,"src":"1917:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1900:25:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4146,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"1928:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1900:33:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4148,"nodeType":"ExpressionStatement","src":"1900:33:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4150,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4134,"src":"1958:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4151,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4136,"src":"1965:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4152,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"1974:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4149,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"1949:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1949:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4154,"nodeType":"EmitStatement","src":"1944:36:10"}]},"documentation":null,"id":4156,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4134,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":4156,"src":"1837:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4133,"name":"address","nodeType":"ElementaryTypeName","src":"1837:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4136,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":4156,"src":"1852:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4135,"name":"address","nodeType":"ElementaryTypeName","src":"1852:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4138,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4156,"src":"1869:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4137,"name":"uint","nodeType":"ElementaryTypeName","src":"1869:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1836:44:10"},"returnParameters":{"id":4140,"nodeType":"ParameterList","parameters":[],"src":"1889:0:10"},"scope":4363,"src":"1819:169:10","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4193,"nodeType":"Block","src":"2061:155:10","statements":[{"expression":{"argumentTypes":null,"id":4174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4165,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"2072:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4167,"indexExpression":{"argumentTypes":null,"id":4166,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4158,"src":"2082:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2072:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4172,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"2110:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4168,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"2090:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4170,"indexExpression":{"argumentTypes":null,"id":4169,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4158,"src":"2100:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2090:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"2090:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2090:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2072:44:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4175,"nodeType":"ExpressionStatement","src":"2072:44:10"},{"expression":{"argumentTypes":null,"id":4185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4176,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"2127:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4178,"indexExpression":{"argumentTypes":null,"id":4177,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4160,"src":"2137:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2127:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4183,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"2161:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4179,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"2143:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4181,"indexExpression":{"argumentTypes":null,"id":4180,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4160,"src":"2153:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2143:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":3500,"src":"2143:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2143:24:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2127:40:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4186,"nodeType":"ExpressionStatement","src":"2127:40:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4188,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4158,"src":"2192:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4189,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4160,"src":"2198:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4190,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"2202:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4187,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4018,"src":"2183:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2183:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4192,"nodeType":"EmitStatement","src":"2178:30:10"}]},"documentation":null,"id":4194,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4158,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":4194,"src":"2015:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4157,"name":"address","nodeType":"ElementaryTypeName","src":"2015:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4160,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4194,"src":"2029:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4159,"name":"address","nodeType":"ElementaryTypeName","src":"2029:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4162,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4194,"src":"2041:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4161,"name":"uint","nodeType":"ElementaryTypeName","src":"2041:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2014:38:10"},"returnParameters":{"id":4164,"nodeType":"ParameterList","parameters":[],"src":"2061:0:10"},"scope":4363,"src":"1996:220:10","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4212,"nodeType":"Block","src":"2294:77:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4204,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2314:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2314:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4206,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4196,"src":"2326:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4207,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"2335:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4203,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4156,"src":"2305:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2305:36:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4209,"nodeType":"ExpressionStatement","src":"2305:36:10"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":4210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2359:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4202,"id":4211,"nodeType":"Return","src":"2352:11:10"}]},"documentation":null,"functionSelector":"095ea7b3","id":4213,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4196,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":4213,"src":"2241:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4195,"name":"address","nodeType":"ElementaryTypeName","src":"2241:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4198,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4213,"src":"2258:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4197,"name":"uint","nodeType":"ElementaryTypeName","src":"2258:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2240:29:10"},"returnParameters":{"id":4202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4201,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":4213,"src":"2288:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4200,"name":"bool","nodeType":"ElementaryTypeName","src":"2288:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2287:6:10"},"scope":4363,"src":"2224:147:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4231,"nodeType":"Block","src":"2445:73:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4223,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2466:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2466:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4225,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4215,"src":"2478:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4226,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"2482:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4222,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4194,"src":"2456:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2456:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4228,"nodeType":"ExpressionStatement","src":"2456:32:10"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":4229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2506:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4221,"id":4230,"nodeType":"Return","src":"2499:11:10"}]},"documentation":null,"functionSelector":"a9059cbb","id":4232,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4215,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4232,"src":"2397:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4214,"name":"address","nodeType":"ElementaryTypeName","src":"2397:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4217,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4232,"src":"2409:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4216,"name":"uint","nodeType":"ElementaryTypeName","src":"2409:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2396:24:10"},"returnParameters":{"id":4221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4220,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":4232,"src":"2439:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4219,"name":"bool","nodeType":"ElementaryTypeName","src":"2439:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2438:6:10"},"scope":4363,"src":"2379:139:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4282,"nodeType":"Block","src":"2610:217:10","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4243,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"2625:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":4245,"indexExpression":{"argumentTypes":null,"id":4244,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4234,"src":"2635:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2625:15:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4248,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4246,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2641:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2641:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2625:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2661:2:10","subExpression":{"argumentTypes":null,"hexValue":"31","id":4251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2662:1:10","subdenomination":null,"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":4250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2656:4:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4249,"name":"uint","nodeType":"ElementaryTypeName","src":"2656:4:10","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2656:8:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2625:39:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4273,"nodeType":"IfStatement","src":"2621:140:10","trueBody":{"id":4272,"nodeType":"Block","src":"2666:95:10","statements":[{"expression":{"argumentTypes":null,"id":4270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4255,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"2681:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":4259,"indexExpression":{"argumentTypes":null,"id":4256,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4234,"src":"2691:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2681:15:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4260,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4257,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2697:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2697:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2681:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4268,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4238,"src":"2743:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4261,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"2711:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":4263,"indexExpression":{"argumentTypes":null,"id":4262,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4234,"src":"2721:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2711:15:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4266,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4264,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2727:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2727:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2711:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"2711:31:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2711:38:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2681:68:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4271,"nodeType":"ExpressionStatement","src":"2681:68:10"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4275,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4234,"src":"2781:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4276,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4236,"src":"2787:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4238,"src":"2791:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4274,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4194,"src":"2771:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2771:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4279,"nodeType":"ExpressionStatement","src":"2771:26:10"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":4280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2815:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4242,"id":4281,"nodeType":"Return","src":"2808:11:10"}]},"documentation":null,"functionSelector":"23b872dd","id":4283,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4234,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":4283,"src":"2548:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4233,"name":"address","nodeType":"ElementaryTypeName","src":"2548:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4236,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4283,"src":"2562:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4235,"name":"address","nodeType":"ElementaryTypeName","src":"2562:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4238,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4283,"src":"2574:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4237,"name":"uint","nodeType":"ElementaryTypeName","src":"2574:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2547:38:10"},"returnParameters":{"id":4242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4241,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":4283,"src":"2604:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4240,"name":"bool","nodeType":"ElementaryTypeName","src":"2604:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2603:6:10"},"scope":4363,"src":"2526:301:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4361,"nodeType":"Block","src":"2950:537:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4301,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4291,"src":"2969:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4302,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2981:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2981:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2969:27:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45585049524544","id":4305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2998:9:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a","typeString":"literal_string \"EXPIRED\""},"value":"EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bd725cfb5ba01ea5dc5a7159cf41eaa54c28dc001805ce2361d3c894e7c2f72a","typeString":"literal_string \"EXPIRED\""}],"id":4300,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2961:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2961:47:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4307,"nodeType":"ExpressionStatement","src":"2961:47:10"},{"assignments":[4309],"declarations":[{"constant":false,"id":4309,"mutability":"mutable","name":"digest","nodeType":"VariableDeclaration","overrides":null,"scope":4361,"src":"3019:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4308,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3019:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":4331,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"1901","id":4313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3095:10:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string \"\u0019\u0001\""},"value":"\u0019\u0001"},{"argumentTypes":null,"id":4314,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3995,"src":"3124:16:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4318,"name":"PERMIT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3998,"src":"3180:15:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4319,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"3197:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4320,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4287,"src":"3204:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"3213:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3220:15:10","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4322,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"3220:6:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4324,"indexExpression":{"argumentTypes":null,"id":4323,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"3227:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3220:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4326,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4291,"src":"3237:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4316,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3169:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3169:10:10","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3169:77:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4315,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3159:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3159:88:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string \"\u0019\u0001\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":4311,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3060:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3060:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3060:202:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4310,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3036:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3036:237:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3019:254:10"},{"assignments":[4333],"declarations":[{"constant":false,"id":4333,"mutability":"mutable","name":"recoveredAddress","nodeType":"VariableDeclaration","overrides":null,"scope":4361,"src":"3284:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4332,"name":"address","nodeType":"ElementaryTypeName","src":"3284:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":4340,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4335,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4309,"src":"3321:6:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4336,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4293,"src":"3329:1:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":4337,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4295,"src":"3332:1:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4338,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4297,"src":"3335:1:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4334,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"3311:9:10","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":4339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3311:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3284:53:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4342,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4333,"src":"3356:16:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":4345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3384:1:10","subdenomination":null,"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":4344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3376:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4343,"name":"address","nodeType":"ElementaryTypeName","src":"3376:7:10","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3376:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3356:30:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4348,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4333,"src":"3390:16:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4349,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"3410:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3390:25:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3356:59:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"494e56414c49445f5349474e4154555245","id":4352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3417:19:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""},"value":"INVALID_SIGNATURE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""}],"id":4341,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3348:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3348:89:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4354,"nodeType":"ExpressionStatement","src":"3348:89:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4356,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"3457:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4357,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4287,"src":"3464:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"3473:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4355,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4156,"src":"3448:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3448:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4360,"nodeType":"ExpressionStatement","src":"3448:31:10"}]},"documentation":null,"functionSelector":"d505accf","id":4362,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4285,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":4362,"src":"2851:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4284,"name":"address","nodeType":"ElementaryTypeName","src":"2851:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4287,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":4362,"src":"2866:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4286,"name":"address","nodeType":"ElementaryTypeName","src":"2866:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4289,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4362,"src":"2883:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4288,"name":"uint","nodeType":"ElementaryTypeName","src":"2883:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4291,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":4362,"src":"2895:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4290,"name":"uint","nodeType":"ElementaryTypeName","src":"2895:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4293,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":4362,"src":"2910:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4292,"name":"uint8","nodeType":"ElementaryTypeName","src":"2910:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":4295,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":4362,"src":"2919:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4294,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2919:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":4297,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":4362,"src":"2930:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2930:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2850:90:10"},"returnParameters":{"id":4299,"nodeType":"ParameterList","parameters":[],"src":"2950:0:10"},"scope":4363,"src":"2835:652:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4364,"src":"66:3424:10"}],"src":"0:3492:10"},"id":10},"contracts/pangolin-periphery/test/RouterEventEmitter.sol":{"ast":{"absolutePath":"contracts/pangolin-periphery/test/RouterEventEmitter.sol","exportedSymbols":{"RouterEventEmitter":[4688]},"id":4689,"nodeType":"SourceUnit","nodes":[{"id":4365,"literals":["solidity","=","0.6",".6"],"nodeType":"PragmaDirective","src":"0:23:11"},{"absolutePath":"contracts/pangolin-periphery/interfaces/IPangolinRouter.sol","file":"../interfaces/IPangolinRouter.sol","id":4366,"nodeType":"ImportDirective","scope":4689,"sourceUnit":2977,"src":"27:43:11","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":4688,"linearizedBaseContracts":[4688],"name":"RouterEventEmitter","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":4371,"name":"Amounts","nodeType":"EventDefinition","parameters":{"id":4370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4369,"indexed":false,"mutability":"mutable","name":"amounts","nodeType":"VariableDeclaration","overrides":null,"scope":4371,"src":"123:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4367,"name":"uint","nodeType":"ElementaryTypeName","src":"123:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4368,"length":null,"nodeType":"ArrayTypeName","src":"123:6:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"122:16:11"},"src":"109:30:11"},{"body":{"id":4374,"nodeType":"Block","src":"174:2:11","statements":[]},"documentation":null,"id":4375,"implemented":true,"kind":"receive","modifiers":[],"name":"","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4372,"nodeType":"ParameterList","parameters":[],"src":"154:2:11"},"returnParameters":{"id":4373,"nodeType":"ParameterList","parameters":[],"src":"174:0:11"},"scope":4688,"src":"147:29:11","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":4427,"nodeType":"Block","src":"390:314:11","statements":[{"assignments":[4392,4394],"declarations":[{"constant":false,"id":4392,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":4427,"src":"402:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4391,"name":"bool","nodeType":"ElementaryTypeName","src":"402:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":4394,"mutability":"mutable","name":"returnData","nodeType":"VariableDeclaration","overrides":null,"scope":4427,"src":"416:23:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4393,"name":"bytes","nodeType":"ElementaryTypeName","src":"416:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":4411,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4400,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4377,"src":"516:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4399,"name":"IPangolinRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"500:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinRouter_$2976_$","typeString":"type(contract IPangolinRouter)"}},"id":4401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"500:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinRouter_$2976","typeString":"contract IPangolinRouter"}},"id":4402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swapExactTokensForTokens","nodeType":"MemberAccess","referencedDeclaration":2757,"src":"500:48:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256,address[] memory,address,uint256) external returns (uint256[] memory)"}},"id":4403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"500:57:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":4404,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"559:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4405,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4381,"src":"569:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4406,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4384,"src":"583:4:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":4407,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4386,"src":"589:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4408,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4388,"src":"593:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4397,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"463:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"463:22:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":4409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"463:149:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":4395,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4377,"src":"443:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"443:19:11","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":4410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"443:170:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"401:212:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4413,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"631:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4412,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"624:6:11","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":4414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"624:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4415,"nodeType":"ExpressionStatement","src":"624:15:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4419,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"674:10:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"687:4:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4420,"name":"uint","nodeType":"ElementaryTypeName","src":"687:4:11","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4422,"indexExpression":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"687:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"id":4423,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"686:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}],"expression":{"argumentTypes":null,"id":4417,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"663:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"663:10:11","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"663:32:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":4416,"name":"Amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4371,"src":"655:7:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory)"}},"id":4425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"655:41:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4426,"nodeType":"EmitStatement","src":"650:46:11"}]},"documentation":null,"functionSelector":"375734d9","id":4428,"implemented":true,"kind":"function","modifiers":[],"name":"swapExactTokensForTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4377,"mutability":"mutable","name":"router","nodeType":"VariableDeclaration","overrides":null,"scope":4428,"src":"228:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4376,"name":"address","nodeType":"ElementaryTypeName","src":"228:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4379,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":4428,"src":"253:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4378,"name":"uint","nodeType":"ElementaryTypeName","src":"253:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4381,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":4428,"src":"277:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4380,"name":"uint","nodeType":"ElementaryTypeName","src":"277:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4384,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":4428,"src":"305:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4382,"name":"address","nodeType":"ElementaryTypeName","src":"305:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4383,"length":null,"nodeType":"ArrayTypeName","src":"305:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":4386,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4428,"src":"339:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4385,"name":"address","nodeType":"ElementaryTypeName","src":"339:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4388,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":4428,"src":"360:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4387,"name":"uint","nodeType":"ElementaryTypeName","src":"360:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"217:163:11"},"returnParameters":{"id":4390,"nodeType":"ParameterList","parameters":[],"src":"390:0:11"},"scope":4688,"src":"184:520:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4480,"nodeType":"Block","src":"918:314:11","statements":[{"assignments":[4445,4447],"declarations":[{"constant":false,"id":4445,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":4480,"src":"930:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4444,"name":"bool","nodeType":"ElementaryTypeName","src":"930:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":4447,"mutability":"mutable","name":"returnData","nodeType":"VariableDeclaration","overrides":null,"scope":4480,"src":"944:23:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4446,"name":"bytes","nodeType":"ElementaryTypeName","src":"944:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":4464,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4453,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4430,"src":"1044:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4452,"name":"IPangolinRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"1028:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinRouter_$2976_$","typeString":"type(contract IPangolinRouter)"}},"id":4454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1028:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinRouter_$2976","typeString":"contract IPangolinRouter"}},"id":4455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swapTokensForExactTokens","nodeType":"MemberAccess","referencedDeclaration":2774,"src":"1028:48:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256,address[] memory,address,uint256) external returns (uint256[] memory)"}},"id":4456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1028:57:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":4457,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4432,"src":"1087:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4458,"name":"amountInMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4434,"src":"1098:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4459,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4437,"src":"1111:4:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":4460,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4439,"src":"1117:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4461,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"1121:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4450,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"991:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"991:22:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":4462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"991:149:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":4448,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4430,"src":"971:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"971:19:11","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":4463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"971:170:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"929:212:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4466,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4445,"src":"1159:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4465,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1152:6:11","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":4467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1152:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4468,"nodeType":"ExpressionStatement","src":"1152:15:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4472,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4447,"src":"1202:10:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1215:4:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4473,"name":"uint","nodeType":"ElementaryTypeName","src":"1215:4:11","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4475,"indexExpression":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1215:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"id":4476,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1214:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}],"expression":{"argumentTypes":null,"id":4470,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1191:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1191:10:11","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1191:32:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":4469,"name":"Amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4371,"src":"1183:7:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory)"}},"id":4478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1183:41:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4479,"nodeType":"EmitStatement","src":"1178:46:11"}]},"documentation":null,"functionSelector":"22b58410","id":4481,"implemented":true,"kind":"function","modifiers":[],"name":"swapTokensForExactTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4430,"mutability":"mutable","name":"router","nodeType":"VariableDeclaration","overrides":null,"scope":4481,"src":"756:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4429,"name":"address","nodeType":"ElementaryTypeName","src":"756:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4432,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":4481,"src":"781:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4431,"name":"uint","nodeType":"ElementaryTypeName","src":"781:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4434,"mutability":"mutable","name":"amountInMax","nodeType":"VariableDeclaration","overrides":null,"scope":4481,"src":"806:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4433,"name":"uint","nodeType":"ElementaryTypeName","src":"806:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4437,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":4481,"src":"833:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4435,"name":"address","nodeType":"ElementaryTypeName","src":"833:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4436,"length":null,"nodeType":"ArrayTypeName","src":"833:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":4439,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4481,"src":"867:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4438,"name":"address","nodeType":"ElementaryTypeName","src":"867:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4441,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":4481,"src":"888:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4440,"name":"uint","nodeType":"ElementaryTypeName","src":"888:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"745:163:11"},"returnParameters":{"id":4443,"nodeType":"ParameterList","parameters":[],"src":"918:0:11"},"scope":4688,"src":"712:520:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4530,"nodeType":"Block","src":"1428:302:11","statements":[{"assignments":[4496,4498],"declarations":[{"constant":false,"id":4496,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":4530,"src":"1440:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4495,"name":"bool","nodeType":"ElementaryTypeName","src":"1440:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":4498,"mutability":"mutable","name":"returnData","nodeType":"VariableDeclaration","overrides":null,"scope":4530,"src":"1454:23:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4497,"name":"bytes","nodeType":"ElementaryTypeName","src":"1454:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":4514,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4504,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4483,"src":"1554:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4503,"name":"IPangolinRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"1538:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinRouter_$2976_$","typeString":"type(contract IPangolinRouter)"}},"id":4505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1538:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinRouter_$2976","typeString":"contract IPangolinRouter"}},"id":4506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swapExactAVAXForTokens","nodeType":"MemberAccess","referencedDeclaration":2789,"src":"1538:46:11","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,address[] memory,address,uint256) payable external returns (uint256[] memory)"}},"id":4507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1538:55:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":4508,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4485,"src":"1595:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4509,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4488,"src":"1609:4:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":4510,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4490,"src":"1615:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4511,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4492,"src":"1619:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4501,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1501:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1501:22:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":4512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1501:137:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":4499,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4483,"src":"1481:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1481:19:11","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":4513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1481:158:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1439:200:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4516,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4496,"src":"1657:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4515,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1650:6:11","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":4517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1650:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4518,"nodeType":"ExpressionStatement","src":"1650:15:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4522,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4498,"src":"1700:10:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1713:4:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4523,"name":"uint","nodeType":"ElementaryTypeName","src":"1713:4:11","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4525,"indexExpression":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1713:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"id":4526,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1712:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}],"expression":{"argumentTypes":null,"id":4520,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1689:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1689:10:11","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1689:32:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":4519,"name":"Amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4371,"src":"1681:7:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory)"}},"id":4528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1681:41:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4529,"nodeType":"EmitStatement","src":"1676:46:11"}]},"documentation":null,"functionSelector":"8a3a5fd5","id":4531,"implemented":true,"kind":"function","modifiers":[],"name":"swapExactAVAXForTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4483,"mutability":"mutable","name":"router","nodeType":"VariableDeclaration","overrides":null,"scope":4531,"src":"1282:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4482,"name":"address","nodeType":"ElementaryTypeName","src":"1282:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4485,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":4531,"src":"1307:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4484,"name":"uint","nodeType":"ElementaryTypeName","src":"1307:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4488,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":4531,"src":"1335:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4486,"name":"address","nodeType":"ElementaryTypeName","src":"1335:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4487,"length":null,"nodeType":"ArrayTypeName","src":"1335:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":4490,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4531,"src":"1369:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4489,"name":"address","nodeType":"ElementaryTypeName","src":"1369:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4492,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":4531,"src":"1390:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4491,"name":"uint","nodeType":"ElementaryTypeName","src":"1390:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1271:139:11"},"returnParameters":{"id":4494,"nodeType":"ParameterList","parameters":[],"src":"1428:0:11"},"scope":4688,"src":"1240:490:11","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":4583,"nodeType":"Block","src":"1942:312:11","statements":[{"assignments":[4548,4550],"declarations":[{"constant":false,"id":4548,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":4583,"src":"1954:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4547,"name":"bool","nodeType":"ElementaryTypeName","src":"1954:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":4550,"mutability":"mutable","name":"returnData","nodeType":"VariableDeclaration","overrides":null,"scope":4583,"src":"1968:23:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4549,"name":"bytes","nodeType":"ElementaryTypeName","src":"1968:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":4567,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4556,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4533,"src":"2068:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4555,"name":"IPangolinRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"2052:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinRouter_$2976_$","typeString":"type(contract IPangolinRouter)"}},"id":4557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2052:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinRouter_$2976","typeString":"contract IPangolinRouter"}},"id":4558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swapTokensForExactAVAX","nodeType":"MemberAccess","referencedDeclaration":2806,"src":"2052:46:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256,address[] memory,address,uint256) external returns (uint256[] memory)"}},"id":4559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2052:55:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":4560,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4535,"src":"2109:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4561,"name":"amountInMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"2120:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4562,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4540,"src":"2133:4:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":4563,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4542,"src":"2139:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4564,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4544,"src":"2143:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4553,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2015:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2015:22:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":4565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2015:147:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":4551,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4533,"src":"1995:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1995:19:11","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":4566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1995:168:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1953:210:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4569,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"2181:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4568,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2174:6:11","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":4570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2174:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4571,"nodeType":"ExpressionStatement","src":"2174:15:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4575,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"2224:10:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2237:4:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4576,"name":"uint","nodeType":"ElementaryTypeName","src":"2237:4:11","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4578,"indexExpression":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"2237:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"id":4579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2236:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}],"expression":{"argumentTypes":null,"id":4573,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2213:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2213:10:11","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2213:32:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":4572,"name":"Amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4371,"src":"2205:7:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory)"}},"id":4581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2205:41:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4582,"nodeType":"EmitStatement","src":"2200:46:11"}]},"documentation":null,"functionSelector":"0fb5112d","id":4584,"implemented":true,"kind":"function","modifiers":[],"name":"swapTokensForExactAVAX","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4533,"mutability":"mutable","name":"router","nodeType":"VariableDeclaration","overrides":null,"scope":4584,"src":"1780:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4532,"name":"address","nodeType":"ElementaryTypeName","src":"1780:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4535,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":4584,"src":"1805:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4534,"name":"uint","nodeType":"ElementaryTypeName","src":"1805:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4537,"mutability":"mutable","name":"amountInMax","nodeType":"VariableDeclaration","overrides":null,"scope":4584,"src":"1830:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4536,"name":"uint","nodeType":"ElementaryTypeName","src":"1830:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4540,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":4584,"src":"1857:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4538,"name":"address","nodeType":"ElementaryTypeName","src":"1857:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4539,"length":null,"nodeType":"ArrayTypeName","src":"1857:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":4542,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4584,"src":"1891:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4541,"name":"address","nodeType":"ElementaryTypeName","src":"1891:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4544,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":4584,"src":"1912:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4543,"name":"uint","nodeType":"ElementaryTypeName","src":"1912:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1769:163:11"},"returnParameters":{"id":4546,"nodeType":"ParameterList","parameters":[],"src":"1942:0:11"},"scope":4688,"src":"1738:516:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4636,"nodeType":"Block","src":"2466:312:11","statements":[{"assignments":[4601,4603],"declarations":[{"constant":false,"id":4601,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":4636,"src":"2478:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4600,"name":"bool","nodeType":"ElementaryTypeName","src":"2478:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":4603,"mutability":"mutable","name":"returnData","nodeType":"VariableDeclaration","overrides":null,"scope":4636,"src":"2492:23:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4602,"name":"bytes","nodeType":"ElementaryTypeName","src":"2492:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":4620,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4609,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4586,"src":"2592:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4608,"name":"IPangolinRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"2576:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinRouter_$2976_$","typeString":"type(contract IPangolinRouter)"}},"id":4610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2576:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinRouter_$2976","typeString":"contract IPangolinRouter"}},"id":4611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swapExactTokensForAVAX","nodeType":"MemberAccess","referencedDeclaration":2823,"src":"2576:46:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256,address[] memory,address,uint256) external returns (uint256[] memory)"}},"id":4612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2576:55:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":4613,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4588,"src":"2633:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4614,"name":"amountOutMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"2643:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4615,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"2657:4:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":4616,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4595,"src":"2663:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4617,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4597,"src":"2667:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4606,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2539:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2539:22:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":4618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2539:147:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":4604,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4586,"src":"2519:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2519:19:11","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":4619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2519:168:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2477:210:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4622,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4601,"src":"2705:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4621,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2698:6:11","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":4623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2698:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4624,"nodeType":"ExpressionStatement","src":"2698:15:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4628,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4603,"src":"2748:10:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2761:4:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4629,"name":"uint","nodeType":"ElementaryTypeName","src":"2761:4:11","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4631,"indexExpression":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"2761:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"id":4632,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2760:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}],"expression":{"argumentTypes":null,"id":4626,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2737:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2737:10:11","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2737:32:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":4625,"name":"Amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4371,"src":"2729:7:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory)"}},"id":4634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2729:41:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4635,"nodeType":"EmitStatement","src":"2724:46:11"}]},"documentation":null,"functionSelector":"1b48304f","id":4637,"implemented":true,"kind":"function","modifiers":[],"name":"swapExactTokensForAVAX","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4586,"mutability":"mutable","name":"router","nodeType":"VariableDeclaration","overrides":null,"scope":4637,"src":"2304:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4585,"name":"address","nodeType":"ElementaryTypeName","src":"2304:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4588,"mutability":"mutable","name":"amountIn","nodeType":"VariableDeclaration","overrides":null,"scope":4637,"src":"2329:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4587,"name":"uint","nodeType":"ElementaryTypeName","src":"2329:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4590,"mutability":"mutable","name":"amountOutMin","nodeType":"VariableDeclaration","overrides":null,"scope":4637,"src":"2353:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4589,"name":"uint","nodeType":"ElementaryTypeName","src":"2353:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4593,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":4637,"src":"2381:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4591,"name":"address","nodeType":"ElementaryTypeName","src":"2381:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4592,"length":null,"nodeType":"ArrayTypeName","src":"2381:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":4595,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4637,"src":"2415:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4594,"name":"address","nodeType":"ElementaryTypeName","src":"2415:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4597,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":4637,"src":"2436:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4596,"name":"uint","nodeType":"ElementaryTypeName","src":"2436:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2293:163:11"},"returnParameters":{"id":4599,"nodeType":"ParameterList","parameters":[],"src":"2466:0:11"},"scope":4688,"src":"2262:516:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4686,"nodeType":"Block","src":"2971:299:11","statements":[{"assignments":[4652,4654],"declarations":[{"constant":false,"id":4652,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":4686,"src":"2983:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4651,"name":"bool","nodeType":"ElementaryTypeName","src":"2983:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":4654,"mutability":"mutable","name":"returnData","nodeType":"VariableDeclaration","overrides":null,"scope":4686,"src":"2997:23:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4653,"name":"bytes","nodeType":"ElementaryTypeName","src":"2997:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":4670,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4660,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4639,"src":"3097:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4659,"name":"IPangolinRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"3081:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinRouter_$2976_$","typeString":"type(contract IPangolinRouter)"}},"id":4661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3081:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinRouter_$2976","typeString":"contract IPangolinRouter"}},"id":4662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"swapAVAXForExactTokens","nodeType":"MemberAccess","referencedDeclaration":2838,"src":"3081:46:11","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,address[] memory,address,uint256) payable external returns (uint256[] memory)"}},"id":4663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3081:55:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":4664,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4641,"src":"3138:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4665,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4644,"src":"3149:4:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":4666,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4646,"src":"3155:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4667,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4648,"src":"3159:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4657,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3044:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3044:22:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":4668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3044:134:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":4655,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4639,"src":"3024:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3024:19:11","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":4669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3024:155:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2982:197:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4672,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4652,"src":"3197:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4671,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"3190:6:11","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":4673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3190:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4674,"nodeType":"ExpressionStatement","src":"3190:15:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4678,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"3240:10:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3253:4:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4679,"name":"uint","nodeType":"ElementaryTypeName","src":"3253:4:11","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4681,"indexExpression":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"3253:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"id":4682,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3252:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}],"expression":{"argumentTypes":null,"id":4676,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3229:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3229:10:11","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3229:32:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":4675,"name":"Amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4371,"src":"3221:7:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory)"}},"id":4684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3221:41:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4685,"nodeType":"EmitStatement","src":"3216:46:11"}]},"documentation":null,"functionSelector":"42011206","id":4687,"implemented":true,"kind":"function","modifiers":[],"name":"swapAVAXForExactTokens","nodeType":"FunctionDefinition","overrides":null,"parameters":{"id":4649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4639,"mutability":"mutable","name":"router","nodeType":"VariableDeclaration","overrides":null,"scope":4687,"src":"2828:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4638,"name":"address","nodeType":"ElementaryTypeName","src":"2828:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4641,"mutability":"mutable","name":"amountOut","nodeType":"VariableDeclaration","overrides":null,"scope":4687,"src":"2853:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4640,"name":"uint","nodeType":"ElementaryTypeName","src":"2853:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4644,"mutability":"mutable","name":"path","nodeType":"VariableDeclaration","overrides":null,"scope":4687,"src":"2878:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4642,"name":"address","nodeType":"ElementaryTypeName","src":"2878:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4643,"length":null,"nodeType":"ArrayTypeName","src":"2878:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":4646,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4687,"src":"2912:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4645,"name":"address","nodeType":"ElementaryTypeName","src":"2912:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4648,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":4687,"src":"2933:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4647,"name":"uint","nodeType":"ElementaryTypeName","src":"2933:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2817:136:11"},"returnParameters":{"id":4650,"nodeType":"ParameterList","parameters":[],"src":"2971:0:11"},"scope":4688,"src":"2786:484:11","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":4689,"src":"74:3199:11"}],"src":"0:3275:11"},"id":11}},"contracts":{"contracts/pangolin-core/interfaces/IPangolinFactory.sol":{"IPangolinFactory":{"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":{"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"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.6.6+commit.6c089d02\"},\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-core/interfaces/IPangolinFactory.sol\":\"IPangolinFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-core/interfaces/IPangolinFactory.sol\":{\"keccak256\":\"0xb3fe51fccd8da7b99d23634d45ab5fc978496bc2763ae8436867c14d144a0b02\",\"urls\":[\"bzz-raw://076378342d9b196439c99464a818629babdb273daf7919b3a71e3b0531b4fb65\",\"dweb:/ipfs/QmPdVowLwaPrTu4yTNJdy1eBkKaAfH3uhU3Eu85ecmdNuC\"]}},\"version\":1}"}},"contracts/pangolin-core/interfaces/IPangolinPair.sol":{"IPangolinPair":{"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":{"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"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.6.6+commit.6c089d02\"},\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-core/interfaces/IPangolinPair.sol\":\"IPangolinPair\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-core/interfaces/IPangolinPair.sol\":{\"keccak256\":\"0x0511ddea9c27b93469fea324ad29206830b559f6bfd16e9d033ba05edc37f1ab\",\"urls\":[\"bzz-raw://721a8c3595a7a7cc8ddf44a41a6db15b186e6e275990dc0e1790b61679b736a3\",\"dweb:/ipfs/QmU2UX4i5ZYtzv333x4FVjLQymC8rFmJ6Hsmi3Ka1HjFMu\"]}},\"version\":1}"}},"contracts/pangolin-lib/libraries/TransferHelper.sol":{"TransferHelper":{"abi":[],"evm":{"bytecode":{"linkReferences":{},"object":"60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122092b646cdf088d523db316f677f4678ac98cb4774b9ec67ad09edf7f8f562f73b64736f6c63430006060033","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 SWAP3 0xB6 CHAINID 0xCD CREATE DUP9 0xD5 0x23 0xDB BALANCE PUSH16 0x677F4678AC98CB4774B9EC67AD09EDF7 0xF8 CREATE2 PUSH3 0xF73B64 PUSH20 0x6F6C634300060600330000000000000000000000 ","sourceMap":"189:1500:2:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24"},"deployedBytecode":{"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122092b646cdf088d523db316f677f4678ac98cb4774b9ec67ad09edf7f8f562f73b64736f6c63430006060033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 0xB6 CHAINID 0xCD CREATE DUP9 0xD5 0x23 0xDB BALANCE PUSH16 0x677F4678AC98CB4774B9EC67AD09EDF7 0xF8 CREATE2 PUSH3 0xF73B64 PUSH20 0x6F6C634300060600330000000000000000000000 ","sourceMap":"189:1500:2:-:0;;;;;;12:1:-1;9;2:12"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-lib/libraries/TransferHelper.sol\":\"TransferHelper\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-lib/libraries/TransferHelper.sol\":{\"keccak256\":\"0xfc5b469642639405484afdba1d1ad1bdc70bd5cd4f01fe53c3be27c12a149f1f\",\"urls\":[\"bzz-raw://ad4c82e4d301a6bb7b9aac332299cb982dc8188d52942cc04796546dfb5cbd7a\",\"dweb:/ipfs/QmeeiUQrF2asciybNWEQyzeMsSkdavRABfZreMpCmKUpcG\"]}},\"version\":1}"}},"contracts/pangolin-periphery/PangolinRouter.sol":{"PangolinRouter":{"abi":[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WAVAX","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WAVAX","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"amountAVAXMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityAVAX","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAVAX","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"amountAVAXMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityAVAX","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAVAX","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":"amountAVAXMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityAVAXSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountAVAX","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":"amountAVAXMin","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":"removeLiquidityAVAXWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAVAX","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":"amountAVAXMin","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":"removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountAVAX","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":"swapAVAXForExactTokens","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":"swapExactAVAXForTokens","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":"swapExactAVAXForTokensSupportingFeeOnTransferTokens","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":"swapExactTokensForAVAX","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":"swapExactTokensForAVAXSupportingFeeOnTransferTokens","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":"swapTokensForExactAVAX","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"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"linkReferences":{},"object":"60c060405234801561001057600080fd5b50604051620048e9380380620048e98339818101604052604081101561003557600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c614764620001856000398061019f5280610e5e5280610f935280610fce528061152952806116cb528061178152806117ef528061189e52806119725280611a7e5280611b345280611c0a5280611ea65280611ffb52806120835280612226528061235252806124aa5280612532528061293952806129e05280612a545280612e495280612e9f5280612ed35280612f47525080610d095280610d425280610e3c52806110ab528061118252806112ae52806115c95280611caa5280611db05280611f4b52806120b5528061220452806123f7528061256452806126c052806128d15280612a865280612c985280612d215280612e7d528061399c52806139df5280613b8a5280613d10528061417a528061424152806142c152506147646000f3fe60806040526004361061018f5760003560e01c806385f8c259116100d6578063baa2abde1161007f578063d06ca61f11610059578063d06ca61f14610b70578063e8e3370014610c27578063f91b3f7214610ca7576101c8565b8063baa2abde14610a78578063c45a015514610ad5578063c57559dd14610aea576101c8565b80639fc27226116100b05780639fc2722614610949578063a2a1623d146109bc578063ad615dec14610a42576101c8565b806385f8c259146107f55780638803dbee1461082b5780638a657e67146108c3576101c8565b80635c11d7951161013857806373bc79cf1161011257806373bc79cf14610672578063762b1562146106c55780637a42416a1461075d576101c8565b80635c11d79514610511578063676528d1146105a957806373b295c214610641576101c8565b80632c407024116101695780632c407024146103b357806333c6b7251461042657806338ed173914610479576101c8565b8063054d50d4146101cd5780631f00ca74146102155780632195995c1461031c576101c8565b366101c857336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101c657fe5b005b600080fd5b3480156101d957600080fd5b50610203600480360360608110156101f057600080fd5b5080359060208101359060400135610ced565b60408051918252519081900360200190f35b34801561022157600080fd5b506102cc6004803603604081101561023857600080fd5b8135919081019060408101602082013564010000000081111561025a57600080fd5b82018360208201111561026c57600080fd5b8035906020019184602083028401116401000000008311171561028e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610d02945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103085781810151838201526020016102f0565b505050509050019250505060405180910390f35b34801561032857600080fd5b5061039a600480360361016081101561034057600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135610d38565b6040805192835260208301919091528051918290030190f35b3480156103bf57600080fd5b5061039a60048036036101408110156103d757600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135610e32565b34801561043257600080fd5b5061039a600480360360c081101561044957600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610f46565b34801561048557600080fd5b506102cc600480360360a081101561049c57600080fd5b8135916020810135918101906060810160408201356401000000008111156104c357600080fd5b8201836020820111156104d557600080fd5b803590602001918460208302840111640100000000831117156104f757600080fd5b91935091506001600160a01b038135169060200135611060565b34801561051d57600080fd5b506101c6600480360360a081101561053457600080fd5b81359160208101359181019060608101604082013564010000000081111561055b57600080fd5b82018360208201111561056d57600080fd5b8035906020019184602083028401116401000000008311171561058f57600080fd5b91935091506001600160a01b038135169060200135611244565b3480156105b557600080fd5b506102cc600480360360a08110156105cc57600080fd5b8135916020810135918101906060810160408201356401000000008111156105f357600080fd5b82018360208201111561060557600080fd5b8035906020019184602083028401116401000000008311171561062757600080fd5b91935091506001600160a01b0381351690602001356114d9565b34801561064d57600080fd5b5061065661177f565b604080516001600160a01b039092168252519081900360200190f35b34801561067e57600080fd5b50610203600480360360c081101561069557600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356117a3565b3480156106d157600080fd5b506101c6600480360360a08110156106e857600080fd5b81359160208101359181019060608101604082013564010000000081111561070f57600080fd5b82018360208201111561072157600080fd5b8035906020019184602083028401116401000000008311171561074357600080fd5b91935091506001600160a01b038135169060200135611924565b34801561076957600080fd5b506102cc600480360360a081101561078057600080fd5b8135916020810135918101906060810160408201356401000000008111156107a757600080fd5b8201836020820111156107b957600080fd5b803590602001918460208302840111640100000000831117156107db57600080fd5b91935091506001600160a01b038135169060200135611bba565b34801561080157600080fd5b506102036004803603606081101561081857600080fd5b5080359060208101359060400135611d58565b34801561083757600080fd5b506102cc600480360360a081101561084e57600080fd5b81359160208101359181019060608101604082013564010000000081111561087557600080fd5b82018360208201111561088757600080fd5b803590602001918460208302840111640100000000831117156108a957600080fd5b91935091506001600160a01b038135169060200135611d65565b6102cc600480360360808110156108d957600080fd5b813591908101906040810160208201356401000000008111156108fb57600080fd5b82018360208201111561090d57600080fd5b8035906020019184602083028401116401000000008311171561092f57600080fd5b91935091506001600160a01b038135169060200135611e5e565b34801561095557600080fd5b50610203600480360361014081101561096d57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356121fc565b6102cc600480360360808110156109d257600080fd5b813591908101906040810160208201356401000000008111156109f457600080fd5b820183602082011115610a0657600080fd5b80359060200191846020830284011164010000000083111715610a2857600080fd5b91935091506001600160a01b03813516906020013561230a565b348015610a4e57600080fd5b5061020360048036036060811015610a6557600080fd5b5080359060208101359060400135612665565b348015610a8457600080fd5b5061039a600480360360e0811015610a9b57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612672565b348015610ae157600080fd5b506106566128cf565b6101c660048036036080811015610b0057600080fd5b81359190810190604081016020820135640100000000811115610b2257600080fd5b820183602082011115610b3457600080fd5b80359060200191846020830284011164010000000083111715610b5657600080fd5b91935091506001600160a01b0381351690602001356128f3565b348015610b7c57600080fd5b506102cc60048036036040811015610b9357600080fd5b81359190810190604081016020820135640100000000811115610bb557600080fd5b820183602082011115610bc757600080fd5b80359060200191846020830284011164010000000083111715610be957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612c91945050505050565b348015610c3357600080fd5b50610c896004803603610100811015610c4b57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612cbe565b60408051938452602084019290925282820152519081900360600190f35b610c89600480360360c0811015610cbd57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135612dfa565b6000610cfa84848461309f565b949350505050565b6060610d2f7f0000000000000000000000000000000000000000000000000000000000000000848461318f565b90505b92915050565b6000806000610d687f00000000000000000000000000000000000000000000000000000000000000008f8f6132dc565b9050600087610d77578c610d7b565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b158015610df157600080fd5b505af1158015610e05573d6000803e3d6000fd5b50505050610e188f8f8f8f8f8f8f612672565b809450819550505050509b509b9950505050505050505050565b6000806000610e827f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006132dc565b9050600087610e91578c610e95565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050610f318e8e8e8e8e8e610f46565b909f909e509c50505050505050505050505050565b6000808242811015610f8d576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b610fbc897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a612672565b9093509150610fcc8986856133b4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561103257600080fd5b505af1158015611046573d6000803e3d6000fd5b50505050611054858361354c565b50965096945050505050565b606081428110156110a6576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b6111047f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061364492505050565b9150868260018451038151811061111757fe5b6020026020010151101561115c5760405162461bcd60e51b815260040180806020018281038252602a8152602001806145d6602a913960400191505060405180910390fd5b6111fa8686600081811061116c57fe5b905060200201356001600160a01b0316336111e07f00000000000000000000000000000000000000000000000000000000000000008a8a60008181106111ae57fe5b905060200201356001600160a01b03168b8b60018181106111cb57fe5b905060200201356001600160a01b03166132dc565b856000815181106111ed57fe5b602002602001015161377b565b611239828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506138ed915050565b509695505050505050565b8042811015611288576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b6112fd8585600081811061129857fe5b905060200201356001600160a01b0316336112f77f0000000000000000000000000000000000000000000000000000000000000000898960008181106112da57fe5b905060200201356001600160a01b03168a8a60018181106111cb57fe5b8a61377b565b60008585600019810181811061130f57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561137457600080fd5b505afa158015611388573d6000803e3d6000fd5b505050506040513d602081101561139e57600080fd5b505160408051602088810282810182019093528882529293506113e0929091899189918291850190849080828437600092019190915250889250613b33915050565b8661149282888860001981018181106113f557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561145a57600080fd5b505afa15801561146e573d6000803e3d6000fd5b505050506040513d602081101561148457600080fd5b50519063ffffffff613e5e16565b10156114cf5760405162461bcd60e51b815260040180806020018281038252602a8152602001806145d6602a913960400191505060405180910390fd5b5050505050505050565b6060814281101561151f576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168686600019810181811061155957fe5b905060200201356001600160a01b03166001600160a01b0316146115c4576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b6116227f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061364492505050565b9150868260018451038151811061163557fe5b6020026020010151101561167a5760405162461bcd60e51b815260040180806020018281038252602a8152602001806145d6602a913960400191505060405180910390fd5b61168a8686600081811061116c57fe5b6116c9828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506138ed915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061170857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561174657600080fd5b505af115801561175a573d6000803e3d6000fd5b50505050611239848360018551038151811061177257fe5b602002602001015161354c565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081428110156117e9576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b611818887f00000000000000000000000000000000000000000000000000000000000000008989893089612672565b604080516370a0823160e01b8152306004820152905191945061189c92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561186b57600080fd5b505afa15801561187f573d6000803e3d6000fd5b505050506040513d602081101561189557600080fd5b50516133b4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561190257600080fd5b505af1158015611916573d6000803e3d6000fd5b50505050611239848361354c565b8042811015611968576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016858560001981018181106119a257fe5b905060200201356001600160a01b03166001600160a01b031614611a0d576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b611a1d8585600081811061129857fe5b611a5b858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b33915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611ac557600080fd5b505afa158015611ad9573d6000803e3d6000fd5b505050506040513d6020811015611aef57600080fd5b5051905086811015611b325760405162461bcd60e51b815260040180806020018281038252602a8152602001806145d6602a913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b9857600080fd5b505af1158015611bac573d6000803e3d6000fd5b505050506114cf848261354c565b60608142811015611c00576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110611c3a57fe5b905060200201356001600160a01b03166001600160a01b031614611ca5576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b611d037f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061318f92505050565b91508682600081518110611d1357fe5b6020026020010151111561167a5760405162461bcd60e51b81526004018080602001828103825260268152602001806146246026913960400191505060405180910390fd5b6000610cfa848484613eb6565b60608142811015611dab576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b611e097f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061318f92505050565b91508682600081518110611e1957fe5b6020026020010151111561115c5760405162461bcd60e51b81526004018080602001828103825260268152602001806146246026913960400191505060405180910390fd5b60608142811015611ea4576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611edb57fe5b905060200201356001600160a01b03166001600160a01b031614611f46576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b611fa47f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061318f92505050565b91503482600081518110611fb457fe5b60200260200101511115611ff95760405162461bcd60e51b81526004018080602001828103825260268152602001806146246026913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db08360008151811061203557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561206857600080fd5b505af115801561207c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6120e17f0000000000000000000000000000000000000000000000000000000000000000898960008181106112da57fe5b846000815181106120ee57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561214557600080fd5b505af1158015612159573d6000803e3d6000fd5b505050506040513d602081101561216f57600080fd5b505161217757fe5b6121b6828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506138ed915050565b816000815181106121c357fe5b60200260200101513411156121f2576121f233836000815181106121e357fe5b6020026020010151340361354c565b5095945050505050565b60008061224a7f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006132dc565b9050600086612259578b61225d565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b505050506122f98d8d8d8d8d8d6117a3565b9d9c50505050505050505050505050565b60608142811015612350576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168686600081811061238757fe5b905060200201356001600160a01b03166001600160a01b0316146123f2576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b6124507f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061364492505050565b9150868260018451038151811061246357fe5b602002602001015110156124a85760405162461bcd60e51b815260040180806020018281038252602a8152602001806145d6602a913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836000815181106124e457fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561251757600080fd5b505af115801561252b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6125907f0000000000000000000000000000000000000000000000000000000000000000898960008181106112da57fe5b8460008151811061259d57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156125f457600080fd5b505af1158015612608573d6000803e3d6000fd5b505050506040513d602081101561261e57600080fd5b505161262657fe5b6121f2828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506138ed915050565b6000610cfa848484613fa6565b60008082428110156126b9576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b60006126e67f00000000000000000000000000000000000000000000000000000000000000008c8c6132dc565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561274157600080fd5b505af1158015612755573d6000803e3d6000fd5b505050506040513d602081101561276b57600080fd5b5050604080517f89afcb440000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b1580156127d157600080fd5b505af11580156127e5573d6000803e3d6000fd5b505050506040513d60408110156127fb57600080fd5b508051602090910151909250905060006128158e8e614052565b509050806001600160a01b03168e6001600160a01b03161461283857818361283b565b82825b90975095508a87101561287f5760405162461bcd60e51b815260040180806020018281038252602581526020018061466a6025913960400191505060405180910390fd5b898610156128be5760405162461bcd60e51b81526004018080602001828103825260258152602001806145696025913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b8042811015612937576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168585600081811061296e57fe5b905060200201356001600160a01b03166001600160a01b0316146129d9576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a3957600080fd5b505af1158015612a4d573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612ab27f0000000000000000000000000000000000000000000000000000000000000000898960008181106112da57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b0257600080fd5b505af1158015612b16573d6000803e3d6000fd5b505050506040513d6020811015612b2c57600080fd5b5051612b3457fe5b600086866000198101818110612b4657fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612bab57600080fd5b505afa158015612bbf573d6000803e3d6000fd5b505050506040513d6020811015612bd557600080fd5b50516040805160208981028281018201909352898252929350612c179290918a918a918291850190849080828437600092019190915250899250613b33915050565b876114928289896000198101818110612c2c57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561145a57600080fd5b6060610d2f7f00000000000000000000000000000000000000000000000000000000000000008484613644565b60008060008342811015612d07576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b612d158c8c8c8c8c8c614130565b90945092506000612d477f00000000000000000000000000000000000000000000000000000000000000008e8e6132dc565b9050612d558d33838861377b565b612d618c33838761377b565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612db957600080fd5b505af1158015612dcd573d6000803e3d6000fd5b505050506040513d6020811015612de357600080fd5b5051949d939c50939a509198505050505050505050565b60008060008342811015612e43576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b612e718a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c614130565b90945092506000612ec37f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006132dc565b9050612ed18b33838861377b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612f2c57600080fd5b505af1158015612f40573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612fc557600080fd5b505af1158015612fd9573d6000803e3d6000fd5b505050506040513d6020811015612fef57600080fd5b5051612ff757fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561304f57600080fd5b505af1158015613063573d6000803e3d6000fd5b505050506040513d602081101561307957600080fd5b5051925034841015613091576130913385340361354c565b505096509650969350505050565b60008084116130df5760405162461bcd60e51b815260040180806020018281038252602a81526020018061468f602a913960400191505060405180910390fd5b6000831180156130ef5750600082115b61312a5760405162461bcd60e51b81526004018080602001828103825260278152602001806146dd6027913960400191505060405180910390fd5b600061313e856103e563ffffffff6143d616565b90506000613152828563ffffffff6143d616565b905060006131788361316c886103e863ffffffff6143d616565b9063ffffffff61444216565b905080828161318357fe5b04979650505050505050565b60606002825110156131e8576040805162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a20494e56414c49445f50415448000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561320057600080fd5b5060405190808252806020026020018201604052801561322a578160200160208202803683370190505b509050828160018351038151811061323e57fe5b60209081029190910101528151600019015b80156132d45760008061328d8786600186038151811061326c57fe5b602002602001015187868151811061328057fe5b602002602001015161449a565b915091506132af8484815181106132a057fe5b60200260200101518383613eb6565b8460018503815181106132be57fe5b6020908102919091010152505060001901613250565b509392505050565b60008060006132eb8585614052565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b6020831061345f5780518252601f199092019160209182019101613440565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146134c1576040519150601f19603f3d011682016040523d82523d6000602084013e6134c6565b606091505b50915091508180156134f45750805115806134f457508080602001905160208110156134f157600080fd5b50515b613545576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106135985780518252601f199092019160209182019101613579565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146135fa576040519150601f19603f3d011682016040523d82523d6000602084013e6135ff565b606091505b505090508061363f5760405162461bcd60e51b81526004018080602001828103825260248152602001806146006024913960400191505060405180910390fd5b505050565b606060028251101561369d576040805162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a20494e56414c49445f50415448000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156136b557600080fd5b506040519080825280602002602001820160405280156136df578160200160208202803683370190505b50905082816000815181106136f057fe5b60200260200101818152505060005b60018351038110156132d4576000806137358786858151811061371e57fe5b602002602001015187866001018151811061328057fe5b9150915061375784848151811061374857fe5b6020026020010151838361309f565b84846001018151811061376657fe5b602090810291909101015250506001016136ff565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106138155780518252601f1990920191602091820191016137f6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613877576040519150601f19603f3d011682016040523d82523d6000602084013e61387c565b606091505b50915091508180156138aa5750805115806138aa57508080602001905160208110156138a757600080fd5b50515b6138e55760405162461bcd60e51b81526004018080602001828103825260248152602001806146b96024913960400191505060405180910390fd5b505050505050565b60005b6001835103811015613b2d5760008084838151811061390b57fe5b602002602001015185846001018151811061392257fe5b602002602001015191509150600061393a8383614052565b509050600087856001018151811061394e57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b03161461397c57826000613980565b6000835b91509150600060028a5103881061399757886139d8565b6139d87f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106139cb57fe5b60200260200101516132dc565b9050613a057f000000000000000000000000000000000000000000000000000000000000000088886132dc565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f191660200182016040528015613a42576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613ab3578181015183820152602001613a9b565b50505050905090810190601f168015613ae05780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613b0257600080fd5b505af1158015613b16573d6000803e3d6000fd5b5050600190990198506138f0975050505050505050565b50505050565b60005b600183510381101561363f57600080848381518110613b5157fe5b6020026020010151858460010181518110613b6857fe5b6020026020010151915091506000613b808383614052565b5090506000613bb07f000000000000000000000000000000000000000000000000000000000000000085856132dc565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613bf157600080fd5b505afa158015613c05573d6000803e3d6000fd5b505050506040513d6060811015613c1b57600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506000806001600160a01b038a811690891614613c58578284613c5b565b83835b91509150613cb9828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561145a57600080fd5b9550613cc686838361309f565b945050505050600080856001600160a01b0316886001600160a01b031614613cf057826000613cf4565b6000835b91509150600060028c51038a10613d0b578a613d3f565b613d3f7f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106139cb57fe5b60408051600080825260208201928390527f022c0d9f00000000000000000000000000000000000000000000000000000000835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613de2578181015183820152602001613dca565b50505050905090810190601f168015613e0f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613e3157600080fd5b505af1158015613e45573d6000803e3d6000fd5b50506001909b019a50613b369950505050505050505050565b80820382811115610d32576040805162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411613ef65760405162461bcd60e51b815260040180806020018281038252602b815260200180614704602b913960400191505060405180910390fd5b600083118015613f065750600082115b613f415760405162461bcd60e51b81526004018080602001828103825260278152602001806146dd6027913960400191505060405180910390fd5b6000613f656103e8613f59868863ffffffff6143d616565b9063ffffffff6143d616565b90506000613f7f6103e5613f59868963ffffffff613e5e16565b9050613f9c6001828481613f8f57fe5b049063ffffffff61444216565b9695505050505050565b6000808411613fe65760405162461bcd60e51b815260040180806020018281038252602481526020018061458e6024913960400191505060405180910390fd5b600083118015613ff65750600082115b6140315760405162461bcd60e51b81526004018080602001828103825260278152602001806146dd6027913960400191505060405180910390fd5b82614042858463ffffffff6143d616565b8161404957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140a65760405162461bcd60e51b81526004018080602001828103825260248152602001806145b26024913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b0316106140c65782846140c9565b83835b90925090506001600160a01b038216614129576040805162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a205a45524f5f41444452455353000000604482015290519081900360640190fd5b9250929050565b604080517fe6a439050000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b1580156141c357600080fd5b505afa1580156141d7573d6000803e3d6000fd5b505050506040513d60208110156141ed57600080fd5b50516001600160a01b031614156142b957604080517fc9c653960000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b15801561428c57600080fd5b505af11580156142a0573d6000803e3d6000fd5b505050506040513d60208110156142b657600080fd5b50505b6000806142e77f00000000000000000000000000000000000000000000000000000000000000008b8b61449a565b915091508160001480156142f9575080155b15614309578793508692506143c9565b6000614316898484613fa6565b9050878111614369578581101561435e5760405162461bcd60e51b81526004018080602001828103825260258152602001806145696025913960400191505060405180910390fd5b8894509250826143c7565b6000614376898486613fa6565b90508981111561438257fe5b878110156143c15760405162461bcd60e51b815260040180806020018281038252602581526020018061466a6025913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008115806143f1575050808202828282816143ee57fe5b04145b610d32576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820182811015610d32576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006144a98585614052565b5090506000806144ba8888886132dc565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156144f257600080fd5b505afa158015614506573d6000803e3d6000fd5b505050506040513d606081101561451c57600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b0387811690841614614556578082614559565b81815b9099909850965050505050505056fe50616e676f6c696e526f757465723a20494e53554646494349454e545f425f414d4f554e5450616e676f6c696e4c6962726172793a20494e53554646494349454e545f414d4f554e5450616e676f6c696e4c6962726172793a204944454e544943414c5f41444452455353455350616e676f6c696e526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a20415641585f5452414e534645525f4641494c454450616e676f6c696e526f757465723a204558434553534956455f494e5055545f414d4f554e5450616e676f6c696e526f757465723a204558504952454400000000000000000050616e676f6c696e526f757465723a20494e53554646494349454e545f415f414d4f554e5450616e676f6c696e4c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c454450616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c495155494449545950616e676f6c696e4c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54a26469706673582212203e2427fb0a5685bb5be60b92d453aee0f195de7d2346dc3c583c9043da41535764736f6c63430006060033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x48E9 CODESIZE SUB DUP1 PUSH3 0x48E9 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 SWAP3 DUP4 SHL DUP2 AND PUSH1 0x80 MSTORE SWAP2 SHL AND PUSH1 0xA0 MSTORE PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x4764 PUSH3 0x185 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x19F MSTORE DUP1 PUSH2 0xE5E MSTORE DUP1 PUSH2 0xF93 MSTORE DUP1 PUSH2 0xFCE MSTORE DUP1 PUSH2 0x1529 MSTORE DUP1 PUSH2 0x16CB MSTORE DUP1 PUSH2 0x1781 MSTORE DUP1 PUSH2 0x17EF MSTORE DUP1 PUSH2 0x189E MSTORE DUP1 PUSH2 0x1972 MSTORE DUP1 PUSH2 0x1A7E MSTORE DUP1 PUSH2 0x1B34 MSTORE DUP1 PUSH2 0x1C0A MSTORE DUP1 PUSH2 0x1EA6 MSTORE DUP1 PUSH2 0x1FFB MSTORE DUP1 PUSH2 0x2083 MSTORE DUP1 PUSH2 0x2226 MSTORE DUP1 PUSH2 0x2352 MSTORE DUP1 PUSH2 0x24AA MSTORE DUP1 PUSH2 0x2532 MSTORE DUP1 PUSH2 0x2939 MSTORE DUP1 PUSH2 0x29E0 MSTORE DUP1 PUSH2 0x2A54 MSTORE DUP1 PUSH2 0x2E49 MSTORE DUP1 PUSH2 0x2E9F MSTORE DUP1 PUSH2 0x2ED3 MSTORE DUP1 PUSH2 0x2F47 MSTORE POP DUP1 PUSH2 0xD09 MSTORE DUP1 PUSH2 0xD42 MSTORE DUP1 PUSH2 0xE3C MSTORE DUP1 PUSH2 0x10AB MSTORE DUP1 PUSH2 0x1182 MSTORE DUP1 PUSH2 0x12AE MSTORE DUP1 PUSH2 0x15C9 MSTORE DUP1 PUSH2 0x1CAA MSTORE DUP1 PUSH2 0x1DB0 MSTORE DUP1 PUSH2 0x1F4B MSTORE DUP1 PUSH2 0x20B5 MSTORE DUP1 PUSH2 0x2204 MSTORE DUP1 PUSH2 0x23F7 MSTORE DUP1 PUSH2 0x2564 MSTORE DUP1 PUSH2 0x26C0 MSTORE DUP1 PUSH2 0x28D1 MSTORE DUP1 PUSH2 0x2A86 MSTORE DUP1 PUSH2 0x2C98 MSTORE DUP1 PUSH2 0x2D21 MSTORE DUP1 PUSH2 0x2E7D MSTORE DUP1 PUSH2 0x399C MSTORE DUP1 PUSH2 0x39DF MSTORE DUP1 PUSH2 0x3B8A MSTORE DUP1 PUSH2 0x3D10 MSTORE DUP1 PUSH2 0x417A MSTORE DUP1 PUSH2 0x4241 MSTORE DUP1 PUSH2 0x42C1 MSTORE POP PUSH2 0x4764 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x18F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x85F8C259 GT PUSH2 0xD6 JUMPI DUP1 PUSH4 0xBAA2ABDE GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xD06CA61F GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xD06CA61F EQ PUSH2 0xB70 JUMPI DUP1 PUSH4 0xE8E33700 EQ PUSH2 0xC27 JUMPI DUP1 PUSH4 0xF91B3F72 EQ PUSH2 0xCA7 JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0xBAA2ABDE EQ PUSH2 0xA78 JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xAD5 JUMPI DUP1 PUSH4 0xC57559DD EQ PUSH2 0xAEA JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x9FC27226 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0x9FC27226 EQ PUSH2 0x949 JUMPI DUP1 PUSH4 0xA2A1623D EQ PUSH2 0x9BC JUMPI DUP1 PUSH4 0xAD615DEC EQ PUSH2 0xA42 JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x85F8C259 EQ PUSH2 0x7F5 JUMPI DUP1 PUSH4 0x8803DBEE EQ PUSH2 0x82B JUMPI DUP1 PUSH4 0x8A657E67 EQ PUSH2 0x8C3 JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x5C11D795 GT PUSH2 0x138 JUMPI DUP1 PUSH4 0x73BC79CF GT PUSH2 0x112 JUMPI DUP1 PUSH4 0x73BC79CF EQ PUSH2 0x672 JUMPI DUP1 PUSH4 0x762B1562 EQ PUSH2 0x6C5 JUMPI DUP1 PUSH4 0x7A42416A EQ PUSH2 0x75D JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x5C11D795 EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0x676528D1 EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0x73B295C2 EQ PUSH2 0x641 JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x2C407024 GT PUSH2 0x169 JUMPI DUP1 PUSH4 0x2C407024 EQ PUSH2 0x3B3 JUMPI DUP1 PUSH4 0x33C6B725 EQ PUSH2 0x426 JUMPI DUP1 PUSH4 0x38ED1739 EQ PUSH2 0x479 JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x54D50D4 EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x1F00CA74 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x2195995C EQ PUSH2 0x31C JUMPI PUSH2 0x1C8 JUMP JUMPDEST CALLDATASIZE PUSH2 0x1C8 JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x1C6 JUMPI INVALID JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0xCED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x25A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0xD02 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x308 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2F0 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x160 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xE0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH2 0x100 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x120 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x140 ADD CALLDATALOAD PUSH2 0xD38 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0x3D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0xE32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0xF46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x49C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x4C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x4D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1060 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x56D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1244 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x5CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x5F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x605 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x14D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x656 PUSH2 0x177F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x17A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x6E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x70F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1924 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x7B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x7DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1BBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x801 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x818 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x1D58 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x875 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x887 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x8D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x8FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x90D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x92F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1E5E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x955 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0x96D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x21FC JUMP JUMPDEST PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x9D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x9F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xA06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xA28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x230A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x2665 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0xA9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x2672 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x656 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x1C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xB00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xB34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xB56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x28F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xB93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xBB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xBE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x2C91 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC89 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xC4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x2CBE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0xC89 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0xCBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCFA DUP5 DUP5 DUP5 PUSH2 0x309F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xD2F PUSH32 0x0 DUP5 DUP5 PUSH2 0x318F JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD68 PUSH32 0x0 DUP16 DUP16 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0xD77 JUMPI DUP13 PUSH2 0xD7B JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xE18 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 PUSH2 0x2672 JUMP JUMPDEST DUP1 SWAP5 POP DUP2 SWAP6 POP POP POP POP POP SWAP12 POP SWAP12 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xE82 PUSH32 0x0 DUP15 PUSH32 0x0 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0xE91 JUMPI DUP13 PUSH2 0xE95 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF1F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xF31 DUP15 DUP15 DUP15 DUP15 DUP15 DUP15 PUSH2 0xF46 JUMP JUMPDEST SWAP1 SWAP16 SWAP1 SWAP15 POP SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xF8D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFBC DUP10 PUSH32 0x0 DUP11 DUP11 DUP11 ADDRESS DUP11 PUSH2 0x2672 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP PUSH2 0xFCC DUP10 DUP7 DUP6 PUSH2 0x33B4 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1032 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1046 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1054 DUP6 DUP4 PUSH2 0x354C JUMP JUMPDEST POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1104 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3644 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1117 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x115C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D6 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x11FA DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x116C JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0x11E0 PUSH32 0x0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x11AE JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 DUP12 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x11CB JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x32DC JUMP JUMPDEST DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x11ED JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x377B JUMP JUMPDEST PUSH2 0x1239 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x38ED SWAP2 POP POP JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1288 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x12FD DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1298 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0x12F7 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x12DA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 DUP11 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x11CB JUMPI INVALID JUMPDEST DUP11 PUSH2 0x377B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x130F JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1388 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x139E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP9 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x13E0 SWAP3 SWAP1 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x3B33 SWAP2 POP POP JUMP JUMPDEST DUP7 PUSH2 0x1492 DUP3 DUP9 DUP9 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x13F5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x146E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3E5E AND JUMP JUMPDEST LT ISZERO PUSH2 0x14CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D6 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x151F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x1559 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x15C4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1622 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3644 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1635 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x167A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D6 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x168A DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x116C JUMPI INVALID JUMPDEST PUSH2 0x16C9 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x38ED SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1708 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x175A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1239 DUP5 DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1772 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x354C JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x17E9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1818 DUP9 PUSH32 0x0 DUP10 DUP10 DUP10 ADDRESS DUP10 PUSH2 0x2672 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH2 0x189C SWAP3 POP DUP11 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x186B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x187F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1895 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x33B4 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1916 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1239 DUP5 DUP4 PUSH2 0x354C JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1968 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x19A2 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A0D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1A1D DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1298 JUMPI INVALID JUMPDEST PUSH2 0x1A5B DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x3B33 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AD9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP7 DUP2 LT ISZERO PUSH2 0x1B32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D6 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x14CF DUP5 DUP3 PUSH2 0x354C JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1C00 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x1C3A JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1CA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1D03 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x318F SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1D13 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x167A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4624 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCFA DUP5 DUP5 DUP5 PUSH2 0x3EB6 JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1DAB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1E09 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x318F SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1E19 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x115C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4624 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1EA4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1EDB JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1F46 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1FA4 PUSH32 0x0 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x318F SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP CALLVALUE DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1FB4 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x1FF9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4624 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2035 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2068 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x20E1 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x12DA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x20EE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2145 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2159 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x216F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2177 JUMPI INVALID JUMPDEST PUSH2 0x21B6 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x38ED SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x21C3 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE GT ISZERO PUSH2 0x21F2 JUMPI PUSH2 0x21F2 CALLER DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x21E3 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE SUB PUSH2 0x354C JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x224A PUSH32 0x0 DUP14 PUSH32 0x0 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH2 0x2259 JUMPI DUP12 PUSH2 0x225D JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x22F9 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x17A3 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2350 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x2387 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x23F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2450 PUSH32 0x0 CALLVALUE DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3644 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x2463 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x24A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D6 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x24E4 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x252B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2590 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x12DA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x259D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2608 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x261E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2626 JUMPI INVALID JUMPDEST PUSH2 0x21F2 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x38ED SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCFA DUP5 DUP5 DUP5 PUSH2 0x3FA6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x26B9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x26E6 PUSH32 0x0 DUP13 DUP13 PUSH2 0x32DC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD DUP14 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH4 0x23B872DD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2741 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2755 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x276B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x89AFCB4400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 SWAP3 DUP7 AND SWAP3 PUSH4 0x89AFCB44 SWAP3 PUSH1 0x24 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27E5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x2815 DUP15 DUP15 PUSH2 0x4052 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP15 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2838 JUMPI DUP2 DUP4 PUSH2 0x283B JUMP JUMPDEST DUP3 DUP3 JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP11 DUP8 LT ISZERO PUSH2 0x287F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x466A PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP7 LT ISZERO PUSH2 0x28BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4569 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2937 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x296E JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x29D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLVALUE SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A4D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2AB2 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x12DA JUMPI INVALID JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2B2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2B34 JUMPI INVALID JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x2B46 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP10 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP10 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x2C17 SWAP3 SWAP1 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x3B33 SWAP2 POP POP JUMP JUMPDEST DUP8 PUSH2 0x1492 DUP3 DUP10 DUP10 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x2C2C JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0xD2F PUSH32 0x0 DUP5 DUP5 PUSH2 0x3644 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2D07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D15 DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 PUSH2 0x4130 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2D47 PUSH32 0x0 DUP15 DUP15 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH2 0x2D55 DUP14 CALLER DUP4 DUP9 PUSH2 0x377B JUMP JUMPDEST PUSH2 0x2D61 DUP13 CALLER DUP4 DUP8 PUSH2 0x377B JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DCD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 SWAP14 SWAP4 SWAP13 POP SWAP4 SWAP11 POP SWAP2 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2E43 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2E71 DUP11 PUSH32 0x0 DUP12 CALLVALUE DUP13 DUP13 PUSH2 0x4130 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2EC3 PUSH32 0x0 DUP13 PUSH32 0x0 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH2 0x2ED1 DUP12 CALLER DUP4 DUP9 PUSH2 0x377B JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F40 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP3 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FD9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2FF7 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x304F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3063 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3079 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP CALLVALUE DUP5 LT ISZERO PUSH2 0x3091 JUMPI PUSH2 0x3091 CALLER DUP6 CALLVALUE SUB PUSH2 0x354C JUMP JUMPDEST POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x30DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x468F PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x30EF JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x312A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46DD PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x313E DUP6 PUSH2 0x3E5 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3152 DUP3 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3178 DUP4 PUSH2 0x316C DUP9 PUSH2 0x3E8 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4442 AND JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 PUSH2 0x3183 JUMPI INVALID JUMPDEST DIV SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x31E8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E56414C49445F50415448000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x3200 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x322A JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x323E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 MLOAD PUSH1 0x0 NOT ADD JUMPDEST DUP1 ISZERO PUSH2 0x32D4 JUMPI PUSH1 0x0 DUP1 PUSH2 0x328D DUP8 DUP7 PUSH1 0x1 DUP7 SUB DUP2 MLOAD DUP2 LT PUSH2 0x326C JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x3280 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x449A JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x32AF DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x32A0 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x3EB6 JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT PUSH2 0x32BE JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x0 NOT ADD PUSH2 0x3250 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x32EB DUP6 DUP6 PUSH2 0x4052 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0x40231F6B438BCE0797C9ADA29B718A87EA0A5CEA3FE9A771ABDD76BD41A3E545 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x345F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3440 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x34C1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x34C6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x34F4 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x34F4 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x34F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x3545 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3598 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3579 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x35FA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x35FF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x363F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4600 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x369D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E56414C49445F50415448000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x36B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x36DF JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x36F0 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x32D4 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3735 DUP8 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x371E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3280 JUMPI INVALID JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3757 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3748 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x309F JUMP JUMPDEST DUP5 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3766 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x36FF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3815 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x37F6 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3877 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x387C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x38AA JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x38AA JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x38E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46B9 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x3B2D JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x390B JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3922 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x393A DUP4 DUP4 PUSH2 0x4052 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP8 DUP6 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x394E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x397C JUMPI DUP3 PUSH1 0x0 PUSH2 0x3980 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP11 MLOAD SUB DUP9 LT PUSH2 0x3997 JUMPI DUP9 PUSH2 0x39D8 JUMP JUMPDEST PUSH2 0x39D8 PUSH32 0x0 DUP8 DUP13 DUP12 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x39CB JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH2 0x3A05 PUSH32 0x0 DUP9 DUP9 PUSH2 0x32DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x22C0D9F DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3A42 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3AB3 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3A9B JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3AE0 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3B02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3B16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP10 ADD SWAP9 POP PUSH2 0x38F0 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x363F JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x3B51 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3B68 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3B80 DUP4 DUP4 PUSH2 0x4052 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x3BB0 PUSH32 0x0 DUP6 DUP6 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3BF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP1 DUP10 AND EQ PUSH2 0x3C58 JUMPI DUP3 DUP5 PUSH2 0x3C5B JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3CB9 DUP3 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP11 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH2 0x3CC6 DUP7 DUP4 DUP4 PUSH2 0x309F JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3CF0 JUMPI DUP3 PUSH1 0x0 PUSH2 0x3CF4 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP13 MLOAD SUB DUP11 LT PUSH2 0x3D0B JUMPI DUP11 PUSH2 0x3D3F JUMP JUMPDEST PUSH2 0x3D3F PUSH32 0x0 DUP10 DUP15 DUP14 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x39CB JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH32 0x22C0D9F00000000000000000000000000000000000000000000000000000000 DUP4 MSTORE PUSH1 0x24 DUP3 ADD DUP8 DUP2 MSTORE PUSH1 0x44 DUP4 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x64 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x84 DUP6 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0xA4 DUP7 ADD DUP2 SWAP1 MSTORE SWAP7 SWAP8 POP SWAP1 DUP13 AND SWAP6 PUSH4 0x22C0D9F SWAP6 DUP11 SWAP6 DUP11 SWAP6 DUP11 SWAP6 SWAP2 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH1 0xC4 DUP7 ADD SWAP3 SWAP1 SWAP2 DUP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3DE2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3DCA JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3E0F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E31 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E45 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP12 ADD SWAP11 POP PUSH2 0x3B36 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0xD32 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x3EF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4704 PUSH1 0x2B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x3F06 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x3F41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46DD PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F65 PUSH2 0x3E8 PUSH2 0x3F59 DUP7 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3F7F PUSH2 0x3E5 PUSH2 0x3F59 DUP7 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3E5E AND JUMP JUMPDEST SWAP1 POP PUSH2 0x3F9C PUSH1 0x1 DUP3 DUP5 DUP2 PUSH2 0x3F8F JUMPI INVALID JUMPDEST DIV SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4442 AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x3FE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x458E PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x3FF6 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x4031 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46DD PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0x4042 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST DUP2 PUSH2 0x4049 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x40A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45B2 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x40C6 JUMPI DUP3 DUP5 PUSH2 0x40C9 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4129 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A205A45524F5F41444452455353000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xE6A4390500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xE6A43905 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x41D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x41ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x42B9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0xC9C6539600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC9C65396 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x428C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x42A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x42B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x42E7 PUSH32 0x0 DUP12 DUP12 PUSH2 0x449A JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH1 0x0 EQ DUP1 ISZERO PUSH2 0x42F9 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4309 JUMPI DUP8 SWAP4 POP DUP7 SWAP3 POP PUSH2 0x43C9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4316 DUP10 DUP5 DUP5 PUSH2 0x3FA6 JUMP JUMPDEST SWAP1 POP DUP8 DUP2 GT PUSH2 0x4369 JUMPI DUP6 DUP2 LT ISZERO PUSH2 0x435E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4569 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 SWAP5 POP SWAP3 POP DUP3 PUSH2 0x43C7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4376 DUP10 DUP5 DUP7 PUSH2 0x3FA6 JUMP JUMPDEST SWAP1 POP DUP10 DUP2 GT ISZERO PUSH2 0x4382 JUMPI INVALID JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x43C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x466A PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP5 POP DUP8 SWAP4 POP JUMPDEST POP JUMPDEST POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x43F1 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x43EE JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xD32 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6D756C2D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0xD32 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x44A9 DUP6 DUP6 PUSH2 0x4052 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x44BA DUP9 DUP9 DUP9 PUSH2 0x32DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x44F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4506 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x451C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x4556 JUMPI DUP1 DUP3 PUSH2 0x4559 JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP INVALID POP PUSH2 0x6E67 PUSH16 0x6C696E526F757465723A20494E535546 CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F TIMESTAMP 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD POP PUSH2 0x6E67 PUSH16 0x6C696E4C6962726172793A20494E5355 CHAINID CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD POP PUSH2 0x6E67 PUSH16 0x6C696E4C6962726172793A204944454E SLOAD 0x49 NUMBER COINBASE 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 POP PUSH2 0x6E67 PUSH16 0x6C696E526F757465723A20494E535546 CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A20415641585F SLOAD MSTORE COINBASE 0x4E MSTORE8 CHAINID GASLIMIT MSTORE 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY POP PUSH2 0x6E67 PUSH16 0x6C696E526F757465723A204558434553 MSTORE8 0x49 JUMP GASLIMIT 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD POP PUSH2 0x6E67 PUSH16 0x6C696E526F757465723A204558504952 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP POP PUSH2 0x6E67 PUSH16 0x6C696E526F757465723A20494E535546 CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD POP PUSH2 0x6E67 PUSH16 0x6C696E4C6962726172793A20494E5355 CHAINID CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY POP PUSH2 0x6E67 PUSH16 0x6C696E4C6962726172793A20494E5355 CHAINID CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE POP PUSH2 0x6E67 PUSH16 0x6C696E4C6962726172793A20494E5355 CHAINID CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURNDATACOPY 0x24 0x27 0xFB EXP JUMP DUP6 0xBB JUMPDEST 0xE6 SIGNEXTEND SWAP3 0xD4 MSTORE8 0xAE 0xE0 CALL SWAP6 0xDE PUSH30 0x2346DC3C583C9043DA41535764736F6C6343000606003300000000000000 ","sourceMap":"340:18570:3:-:0;;;651:115;5:9:-1;2:2;;;27:1;24;17:12;2:2;651:115:3;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;651:115:3;;;;;;;-1:-1:-1;;;;;;715:18:3;;;;;;;;744:14;;;;;340:18570;;;;;;;;;;;;;;;;"},"deployedBytecode":{"immutableReferences":{"481":[{"length":32,"start":3337},{"length":32,"start":3394},{"length":32,"start":3644},{"length":32,"start":4267},{"length":32,"start":4482},{"length":32,"start":4782},{"length":32,"start":5577},{"length":32,"start":7338},{"length":32,"start":7600},{"length":32,"start":8011},{"length":32,"start":8373},{"length":32,"start":8708},{"length":32,"start":9207},{"length":32,"start":9572},{"length":32,"start":9920},{"length":32,"start":10449},{"length":32,"start":10886},{"length":32,"start":11416},{"length":32,"start":11553},{"length":32,"start":11901},{"length":32,"start":14748},{"length":32,"start":14815},{"length":32,"start":15242},{"length":32,"start":15632},{"length":32,"start":16762},{"length":32,"start":16961},{"length":32,"start":17089}],"484":[{"length":32,"start":415},{"length":32,"start":3678},{"length":32,"start":3987},{"length":32,"start":4046},{"length":32,"start":5417},{"length":32,"start":5835},{"length":32,"start":6017},{"length":32,"start":6127},{"length":32,"start":6302},{"length":32,"start":6514},{"length":32,"start":6782},{"length":32,"start":6964},{"length":32,"start":7178},{"length":32,"start":7846},{"length":32,"start":8187},{"length":32,"start":8323},{"length":32,"start":8742},{"length":32,"start":9042},{"length":32,"start":9386},{"length":32,"start":9522},{"length":32,"start":10553},{"length":32,"start":10720},{"length":32,"start":10836},{"length":32,"start":11849},{"length":32,"start":11935},{"length":32,"start":11987},{"length":32,"start":12103}]},"linkReferences":{},"object":"60806040526004361061018f5760003560e01c806385f8c259116100d6578063baa2abde1161007f578063d06ca61f11610059578063d06ca61f14610b70578063e8e3370014610c27578063f91b3f7214610ca7576101c8565b8063baa2abde14610a78578063c45a015514610ad5578063c57559dd14610aea576101c8565b80639fc27226116100b05780639fc2722614610949578063a2a1623d146109bc578063ad615dec14610a42576101c8565b806385f8c259146107f55780638803dbee1461082b5780638a657e67146108c3576101c8565b80635c11d7951161013857806373bc79cf1161011257806373bc79cf14610672578063762b1562146106c55780637a42416a1461075d576101c8565b80635c11d79514610511578063676528d1146105a957806373b295c214610641576101c8565b80632c407024116101695780632c407024146103b357806333c6b7251461042657806338ed173914610479576101c8565b8063054d50d4146101cd5780631f00ca74146102155780632195995c1461031c576101c8565b366101c857336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101c657fe5b005b600080fd5b3480156101d957600080fd5b50610203600480360360608110156101f057600080fd5b5080359060208101359060400135610ced565b60408051918252519081900360200190f35b34801561022157600080fd5b506102cc6004803603604081101561023857600080fd5b8135919081019060408101602082013564010000000081111561025a57600080fd5b82018360208201111561026c57600080fd5b8035906020019184602083028401116401000000008311171561028e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610d02945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103085781810151838201526020016102f0565b505050509050019250505060405180910390f35b34801561032857600080fd5b5061039a600480360361016081101561034057600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135610d38565b6040805192835260208301919091528051918290030190f35b3480156103bf57600080fd5b5061039a60048036036101408110156103d757600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135610e32565b34801561043257600080fd5b5061039a600480360360c081101561044957600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610f46565b34801561048557600080fd5b506102cc600480360360a081101561049c57600080fd5b8135916020810135918101906060810160408201356401000000008111156104c357600080fd5b8201836020820111156104d557600080fd5b803590602001918460208302840111640100000000831117156104f757600080fd5b91935091506001600160a01b038135169060200135611060565b34801561051d57600080fd5b506101c6600480360360a081101561053457600080fd5b81359160208101359181019060608101604082013564010000000081111561055b57600080fd5b82018360208201111561056d57600080fd5b8035906020019184602083028401116401000000008311171561058f57600080fd5b91935091506001600160a01b038135169060200135611244565b3480156105b557600080fd5b506102cc600480360360a08110156105cc57600080fd5b8135916020810135918101906060810160408201356401000000008111156105f357600080fd5b82018360208201111561060557600080fd5b8035906020019184602083028401116401000000008311171561062757600080fd5b91935091506001600160a01b0381351690602001356114d9565b34801561064d57600080fd5b5061065661177f565b604080516001600160a01b039092168252519081900360200190f35b34801561067e57600080fd5b50610203600480360360c081101561069557600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356117a3565b3480156106d157600080fd5b506101c6600480360360a08110156106e857600080fd5b81359160208101359181019060608101604082013564010000000081111561070f57600080fd5b82018360208201111561072157600080fd5b8035906020019184602083028401116401000000008311171561074357600080fd5b91935091506001600160a01b038135169060200135611924565b34801561076957600080fd5b506102cc600480360360a081101561078057600080fd5b8135916020810135918101906060810160408201356401000000008111156107a757600080fd5b8201836020820111156107b957600080fd5b803590602001918460208302840111640100000000831117156107db57600080fd5b91935091506001600160a01b038135169060200135611bba565b34801561080157600080fd5b506102036004803603606081101561081857600080fd5b5080359060208101359060400135611d58565b34801561083757600080fd5b506102cc600480360360a081101561084e57600080fd5b81359160208101359181019060608101604082013564010000000081111561087557600080fd5b82018360208201111561088757600080fd5b803590602001918460208302840111640100000000831117156108a957600080fd5b91935091506001600160a01b038135169060200135611d65565b6102cc600480360360808110156108d957600080fd5b813591908101906040810160208201356401000000008111156108fb57600080fd5b82018360208201111561090d57600080fd5b8035906020019184602083028401116401000000008311171561092f57600080fd5b91935091506001600160a01b038135169060200135611e5e565b34801561095557600080fd5b50610203600480360361014081101561096d57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356121fc565b6102cc600480360360808110156109d257600080fd5b813591908101906040810160208201356401000000008111156109f457600080fd5b820183602082011115610a0657600080fd5b80359060200191846020830284011164010000000083111715610a2857600080fd5b91935091506001600160a01b03813516906020013561230a565b348015610a4e57600080fd5b5061020360048036036060811015610a6557600080fd5b5080359060208101359060400135612665565b348015610a8457600080fd5b5061039a600480360360e0811015610a9b57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612672565b348015610ae157600080fd5b506106566128cf565b6101c660048036036080811015610b0057600080fd5b81359190810190604081016020820135640100000000811115610b2257600080fd5b820183602082011115610b3457600080fd5b80359060200191846020830284011164010000000083111715610b5657600080fd5b91935091506001600160a01b0381351690602001356128f3565b348015610b7c57600080fd5b506102cc60048036036040811015610b9357600080fd5b81359190810190604081016020820135640100000000811115610bb557600080fd5b820183602082011115610bc757600080fd5b80359060200191846020830284011164010000000083111715610be957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612c91945050505050565b348015610c3357600080fd5b50610c896004803603610100811015610c4b57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612cbe565b60408051938452602084019290925282820152519081900360600190f35b610c89600480360360c0811015610cbd57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135612dfa565b6000610cfa84848461309f565b949350505050565b6060610d2f7f0000000000000000000000000000000000000000000000000000000000000000848461318f565b90505b92915050565b6000806000610d687f00000000000000000000000000000000000000000000000000000000000000008f8f6132dc565b9050600087610d77578c610d7b565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b158015610df157600080fd5b505af1158015610e05573d6000803e3d6000fd5b50505050610e188f8f8f8f8f8f8f612672565b809450819550505050509b509b9950505050505050505050565b6000806000610e827f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006132dc565b9050600087610e91578c610e95565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050610f318e8e8e8e8e8e610f46565b909f909e509c50505050505050505050505050565b6000808242811015610f8d576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b610fbc897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a612672565b9093509150610fcc8986856133b4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561103257600080fd5b505af1158015611046573d6000803e3d6000fd5b50505050611054858361354c565b50965096945050505050565b606081428110156110a6576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b6111047f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061364492505050565b9150868260018451038151811061111757fe5b6020026020010151101561115c5760405162461bcd60e51b815260040180806020018281038252602a8152602001806145d6602a913960400191505060405180910390fd5b6111fa8686600081811061116c57fe5b905060200201356001600160a01b0316336111e07f00000000000000000000000000000000000000000000000000000000000000008a8a60008181106111ae57fe5b905060200201356001600160a01b03168b8b60018181106111cb57fe5b905060200201356001600160a01b03166132dc565b856000815181106111ed57fe5b602002602001015161377b565b611239828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506138ed915050565b509695505050505050565b8042811015611288576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b6112fd8585600081811061129857fe5b905060200201356001600160a01b0316336112f77f0000000000000000000000000000000000000000000000000000000000000000898960008181106112da57fe5b905060200201356001600160a01b03168a8a60018181106111cb57fe5b8a61377b565b60008585600019810181811061130f57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561137457600080fd5b505afa158015611388573d6000803e3d6000fd5b505050506040513d602081101561139e57600080fd5b505160408051602088810282810182019093528882529293506113e0929091899189918291850190849080828437600092019190915250889250613b33915050565b8661149282888860001981018181106113f557fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561145a57600080fd5b505afa15801561146e573d6000803e3d6000fd5b505050506040513d602081101561148457600080fd5b50519063ffffffff613e5e16565b10156114cf5760405162461bcd60e51b815260040180806020018281038252602a8152602001806145d6602a913960400191505060405180910390fd5b5050505050505050565b6060814281101561151f576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168686600019810181811061155957fe5b905060200201356001600160a01b03166001600160a01b0316146115c4576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b6116227f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061364492505050565b9150868260018451038151811061163557fe5b6020026020010151101561167a5760405162461bcd60e51b815260040180806020018281038252602a8152602001806145d6602a913960400191505060405180910390fd5b61168a8686600081811061116c57fe5b6116c9828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506138ed915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061170857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561174657600080fd5b505af115801561175a573d6000803e3d6000fd5b50505050611239848360018551038151811061177257fe5b602002602001015161354c565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081428110156117e9576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b611818887f00000000000000000000000000000000000000000000000000000000000000008989893089612672565b604080516370a0823160e01b8152306004820152905191945061189c92508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561186b57600080fd5b505afa15801561187f573d6000803e3d6000fd5b505050506040513d602081101561189557600080fd5b50516133b4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561190257600080fd5b505af1158015611916573d6000803e3d6000fd5b50505050611239848361354c565b8042811015611968576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016858560001981018181106119a257fe5b905060200201356001600160a01b03166001600160a01b031614611a0d576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b611a1d8585600081811061129857fe5b611a5b858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613b33915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611ac557600080fd5b505afa158015611ad9573d6000803e3d6000fd5b505050506040513d6020811015611aef57600080fd5b5051905086811015611b325760405162461bcd60e51b815260040180806020018281038252602a8152602001806145d6602a913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b9857600080fd5b505af1158015611bac573d6000803e3d6000fd5b505050506114cf848261354c565b60608142811015611c00576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110611c3a57fe5b905060200201356001600160a01b03166001600160a01b031614611ca5576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b611d037f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061318f92505050565b91508682600081518110611d1357fe5b6020026020010151111561167a5760405162461bcd60e51b81526004018080602001828103825260268152602001806146246026913960400191505060405180910390fd5b6000610cfa848484613eb6565b60608142811015611dab576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b611e097f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061318f92505050565b91508682600081518110611e1957fe5b6020026020010151111561115c5760405162461bcd60e51b81526004018080602001828103825260268152602001806146246026913960400191505060405180910390fd5b60608142811015611ea4576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611edb57fe5b905060200201356001600160a01b03166001600160a01b031614611f46576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b611fa47f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061318f92505050565b91503482600081518110611fb457fe5b60200260200101511115611ff95760405162461bcd60e51b81526004018080602001828103825260268152602001806146246026913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db08360008151811061203557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561206857600080fd5b505af115801561207c573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6120e17f0000000000000000000000000000000000000000000000000000000000000000898960008181106112da57fe5b846000815181106120ee57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561214557600080fd5b505af1158015612159573d6000803e3d6000fd5b505050506040513d602081101561216f57600080fd5b505161217757fe5b6121b6828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506138ed915050565b816000815181106121c357fe5b60200260200101513411156121f2576121f233836000815181106121e357fe5b6020026020010151340361354c565b5095945050505050565b60008061224a7f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006132dc565b9050600086612259578b61225d565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b505050506122f98d8d8d8d8d8d6117a3565b9d9c50505050505050505050505050565b60608142811015612350576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168686600081811061238757fe5b905060200201356001600160a01b03166001600160a01b0316146123f2576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b6124507f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061364492505050565b9150868260018451038151811061246357fe5b602002602001015110156124a85760405162461bcd60e51b815260040180806020018281038252602a8152602001806145d6602a913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836000815181106124e457fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561251757600080fd5b505af115801561252b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6125907f0000000000000000000000000000000000000000000000000000000000000000898960008181106112da57fe5b8460008151811061259d57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156125f457600080fd5b505af1158015612608573d6000803e3d6000fd5b505050506040513d602081101561261e57600080fd5b505161262657fe5b6121f2828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506138ed915050565b6000610cfa848484613fa6565b60008082428110156126b9576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b60006126e67f00000000000000000000000000000000000000000000000000000000000000008c8c6132dc565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561274157600080fd5b505af1158015612755573d6000803e3d6000fd5b505050506040513d602081101561276b57600080fd5b5050604080517f89afcb440000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b1580156127d157600080fd5b505af11580156127e5573d6000803e3d6000fd5b505050506040513d60408110156127fb57600080fd5b508051602090910151909250905060006128158e8e614052565b509050806001600160a01b03168e6001600160a01b03161461283857818361283b565b82825b90975095508a87101561287f5760405162461bcd60e51b815260040180806020018281038252602581526020018061466a6025913960400191505060405180910390fd5b898610156128be5760405162461bcd60e51b81526004018080602001828103825260258152602001806145696025913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b8042811015612937576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168585600081811061296e57fe5b905060200201356001600160a01b03166001600160a01b0316146129d9576040805162461bcd60e51b815260206004820152601c60248201527f50616e676f6c696e526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a3957600080fd5b505af1158015612a4d573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612ab27f0000000000000000000000000000000000000000000000000000000000000000898960008181106112da57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b0257600080fd5b505af1158015612b16573d6000803e3d6000fd5b505050506040513d6020811015612b2c57600080fd5b5051612b3457fe5b600086866000198101818110612b4657fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612bab57600080fd5b505afa158015612bbf573d6000803e3d6000fd5b505050506040513d6020811015612bd557600080fd5b50516040805160208981028281018201909352898252929350612c179290918a918a918291850190849080828437600092019190915250899250613b33915050565b876114928289896000198101818110612c2c57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561145a57600080fd5b6060610d2f7f00000000000000000000000000000000000000000000000000000000000000008484613644565b60008060008342811015612d07576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b612d158c8c8c8c8c8c614130565b90945092506000612d477f00000000000000000000000000000000000000000000000000000000000000008e8e6132dc565b9050612d558d33838861377b565b612d618c33838761377b565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612db957600080fd5b505af1158015612dcd573d6000803e3d6000fd5b505050506040513d6020811015612de357600080fd5b5051949d939c50939a509198505050505050505050565b60008060008342811015612e43576040805162461bcd60e51b8152602060048201526017602482015260008051602061464a833981519152604482015290519081900360640190fd5b612e718a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c614130565b90945092506000612ec37f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006132dc565b9050612ed18b33838861377b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612f2c57600080fd5b505af1158015612f40573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612fc557600080fd5b505af1158015612fd9573d6000803e3d6000fd5b505050506040513d6020811015612fef57600080fd5b5051612ff757fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561304f57600080fd5b505af1158015613063573d6000803e3d6000fd5b505050506040513d602081101561307957600080fd5b5051925034841015613091576130913385340361354c565b505096509650969350505050565b60008084116130df5760405162461bcd60e51b815260040180806020018281038252602a81526020018061468f602a913960400191505060405180910390fd5b6000831180156130ef5750600082115b61312a5760405162461bcd60e51b81526004018080602001828103825260278152602001806146dd6027913960400191505060405180910390fd5b600061313e856103e563ffffffff6143d616565b90506000613152828563ffffffff6143d616565b905060006131788361316c886103e863ffffffff6143d616565b9063ffffffff61444216565b905080828161318357fe5b04979650505050505050565b60606002825110156131e8576040805162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a20494e56414c49445f50415448000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561320057600080fd5b5060405190808252806020026020018201604052801561322a578160200160208202803683370190505b509050828160018351038151811061323e57fe5b60209081029190910101528151600019015b80156132d45760008061328d8786600186038151811061326c57fe5b602002602001015187868151811061328057fe5b602002602001015161449a565b915091506132af8484815181106132a057fe5b60200260200101518383613eb6565b8460018503815181106132be57fe5b6020908102919091010152505060001901613250565b509392505050565b60008060006132eb8585614052565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b6020831061345f5780518252601f199092019160209182019101613440565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146134c1576040519150601f19603f3d011682016040523d82523d6000602084013e6134c6565b606091505b50915091508180156134f45750805115806134f457508080602001905160208110156134f157600080fd5b50515b613545576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106135985780518252601f199092019160209182019101613579565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146135fa576040519150601f19603f3d011682016040523d82523d6000602084013e6135ff565b606091505b505090508061363f5760405162461bcd60e51b81526004018080602001828103825260248152602001806146006024913960400191505060405180910390fd5b505050565b606060028251101561369d576040805162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a20494e56414c49445f50415448000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156136b557600080fd5b506040519080825280602002602001820160405280156136df578160200160208202803683370190505b50905082816000815181106136f057fe5b60200260200101818152505060005b60018351038110156132d4576000806137358786858151811061371e57fe5b602002602001015187866001018151811061328057fe5b9150915061375784848151811061374857fe5b6020026020010151838361309f565b84846001018151811061376657fe5b602090810291909101015250506001016136ff565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106138155780518252601f1990920191602091820191016137f6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613877576040519150601f19603f3d011682016040523d82523d6000602084013e61387c565b606091505b50915091508180156138aa5750805115806138aa57508080602001905160208110156138a757600080fd5b50515b6138e55760405162461bcd60e51b81526004018080602001828103825260248152602001806146b96024913960400191505060405180910390fd5b505050505050565b60005b6001835103811015613b2d5760008084838151811061390b57fe5b602002602001015185846001018151811061392257fe5b602002602001015191509150600061393a8383614052565b509050600087856001018151811061394e57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b03161461397c57826000613980565b6000835b91509150600060028a5103881061399757886139d8565b6139d87f0000000000000000000000000000000000000000000000000000000000000000878c8b600201815181106139cb57fe5b60200260200101516132dc565b9050613a057f000000000000000000000000000000000000000000000000000000000000000088886132dc565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f191660200182016040528015613a42576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613ab3578181015183820152602001613a9b565b50505050905090810190601f168015613ae05780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613b0257600080fd5b505af1158015613b16573d6000803e3d6000fd5b5050600190990198506138f0975050505050505050565b50505050565b60005b600183510381101561363f57600080848381518110613b5157fe5b6020026020010151858460010181518110613b6857fe5b6020026020010151915091506000613b808383614052565b5090506000613bb07f000000000000000000000000000000000000000000000000000000000000000085856132dc565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613bf157600080fd5b505afa158015613c05573d6000803e3d6000fd5b505050506040513d6060811015613c1b57600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506000806001600160a01b038a811690891614613c58578284613c5b565b83835b91509150613cb9828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561145a57600080fd5b9550613cc686838361309f565b945050505050600080856001600160a01b0316886001600160a01b031614613cf057826000613cf4565b6000835b91509150600060028c51038a10613d0b578a613d3f565b613d3f7f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106139cb57fe5b60408051600080825260208201928390527f022c0d9f00000000000000000000000000000000000000000000000000000000835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613de2578181015183820152602001613dca565b50505050905090810190601f168015613e0f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613e3157600080fd5b505af1158015613e45573d6000803e3d6000fd5b50506001909b019a50613b369950505050505050505050565b80820382811115610d32576040805162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411613ef65760405162461bcd60e51b815260040180806020018281038252602b815260200180614704602b913960400191505060405180910390fd5b600083118015613f065750600082115b613f415760405162461bcd60e51b81526004018080602001828103825260278152602001806146dd6027913960400191505060405180910390fd5b6000613f656103e8613f59868863ffffffff6143d616565b9063ffffffff6143d616565b90506000613f7f6103e5613f59868963ffffffff613e5e16565b9050613f9c6001828481613f8f57fe5b049063ffffffff61444216565b9695505050505050565b6000808411613fe65760405162461bcd60e51b815260040180806020018281038252602481526020018061458e6024913960400191505060405180910390fd5b600083118015613ff65750600082115b6140315760405162461bcd60e51b81526004018080602001828103825260278152602001806146dd6027913960400191505060405180910390fd5b82614042858463ffffffff6143d616565b8161404957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156140a65760405162461bcd60e51b81526004018080602001828103825260248152602001806145b26024913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b0316106140c65782846140c9565b83835b90925090506001600160a01b038216614129576040805162461bcd60e51b815260206004820152601d60248201527f50616e676f6c696e4c6962726172793a205a45524f5f41444452455353000000604482015290519081900360640190fd5b9250929050565b604080517fe6a439050000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b1580156141c357600080fd5b505afa1580156141d7573d6000803e3d6000fd5b505050506040513d60208110156141ed57600080fd5b50516001600160a01b031614156142b957604080517fc9c653960000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b15801561428c57600080fd5b505af11580156142a0573d6000803e3d6000fd5b505050506040513d60208110156142b657600080fd5b50505b6000806142e77f00000000000000000000000000000000000000000000000000000000000000008b8b61449a565b915091508160001480156142f9575080155b15614309578793508692506143c9565b6000614316898484613fa6565b9050878111614369578581101561435e5760405162461bcd60e51b81526004018080602001828103825260258152602001806145696025913960400191505060405180910390fd5b8894509250826143c7565b6000614376898486613fa6565b90508981111561438257fe5b878110156143c15760405162461bcd60e51b815260040180806020018281038252602581526020018061466a6025913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008115806143f1575050808202828282816143ee57fe5b04145b610d32576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820182811015610d32576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006144a98585614052565b5090506000806144ba8888886132dc565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156144f257600080fd5b505afa158015614506573d6000803e3d6000fd5b505050506040513d606081101561451c57600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b0387811690841614614556578082614559565b81815b9099909850965050505050505056fe50616e676f6c696e526f757465723a20494e53554646494349454e545f425f414d4f554e5450616e676f6c696e4c6962726172793a20494e53554646494349454e545f414d4f554e5450616e676f6c696e4c6962726172793a204944454e544943414c5f41444452455353455350616e676f6c696e526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a20415641585f5452414e534645525f4641494c454450616e676f6c696e526f757465723a204558434553534956455f494e5055545f414d4f554e5450616e676f6c696e526f757465723a204558504952454400000000000000000050616e676f6c696e526f757465723a20494e53554646494349454e545f415f414d4f554e5450616e676f6c696e4c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c454450616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c495155494449545950616e676f6c696e4c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54a26469706673582212203e2427fb0a5685bb5be60b92d453aee0f195de7d2346dc3c583c9043da41535764736f6c63430006060033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x18F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x85F8C259 GT PUSH2 0xD6 JUMPI DUP1 PUSH4 0xBAA2ABDE GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xD06CA61F GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xD06CA61F EQ PUSH2 0xB70 JUMPI DUP1 PUSH4 0xE8E33700 EQ PUSH2 0xC27 JUMPI DUP1 PUSH4 0xF91B3F72 EQ PUSH2 0xCA7 JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0xBAA2ABDE EQ PUSH2 0xA78 JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0xAD5 JUMPI DUP1 PUSH4 0xC57559DD EQ PUSH2 0xAEA JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x9FC27226 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0x9FC27226 EQ PUSH2 0x949 JUMPI DUP1 PUSH4 0xA2A1623D EQ PUSH2 0x9BC JUMPI DUP1 PUSH4 0xAD615DEC EQ PUSH2 0xA42 JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x85F8C259 EQ PUSH2 0x7F5 JUMPI DUP1 PUSH4 0x8803DBEE EQ PUSH2 0x82B JUMPI DUP1 PUSH4 0x8A657E67 EQ PUSH2 0x8C3 JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x5C11D795 GT PUSH2 0x138 JUMPI DUP1 PUSH4 0x73BC79CF GT PUSH2 0x112 JUMPI DUP1 PUSH4 0x73BC79CF EQ PUSH2 0x672 JUMPI DUP1 PUSH4 0x762B1562 EQ PUSH2 0x6C5 JUMPI DUP1 PUSH4 0x7A42416A EQ PUSH2 0x75D JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x5C11D795 EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0x676528D1 EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0x73B295C2 EQ PUSH2 0x641 JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x2C407024 GT PUSH2 0x169 JUMPI DUP1 PUSH4 0x2C407024 EQ PUSH2 0x3B3 JUMPI DUP1 PUSH4 0x33C6B725 EQ PUSH2 0x426 JUMPI DUP1 PUSH4 0x38ED1739 EQ PUSH2 0x479 JUMPI PUSH2 0x1C8 JUMP JUMPDEST DUP1 PUSH4 0x54D50D4 EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x1F00CA74 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x2195995C EQ PUSH2 0x31C JUMPI PUSH2 0x1C8 JUMP JUMPDEST CALLDATASIZE PUSH2 0x1C8 JUMPI CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x1C6 JUMPI INVALID JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0xCED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x25A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0xD02 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x308 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2F0 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x160 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xE0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH2 0x100 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x120 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x140 ADD CALLDATALOAD PUSH2 0xD38 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0x3D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0xE32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0xF46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x49C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x4C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x4D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1060 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x56D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1244 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x5CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x5F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x605 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x14D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x656 PUSH2 0x177F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x17A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x6E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x70F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1924 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x7B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x7DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1BBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x801 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x818 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x1D58 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x875 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x887 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x8D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x8FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x90D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x92F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1E5E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x955 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x140 DUP2 LT ISZERO PUSH2 0x96D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0xFF PUSH1 0xE0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x120 ADD CALLDATALOAD PUSH2 0x21FC JUMP JUMPDEST PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x9D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x9F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xA06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xA28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x230A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x2665 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0xA9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x2672 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x656 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x1C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xB00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xB34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xB56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x28F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xB93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xBB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xBE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP PUSH2 0x2C91 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC89 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x100 DUP2 LT ISZERO PUSH2 0xC4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0xC0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xE0 ADD CALLDATALOAD PUSH2 0x2CBE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0xC89 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0xCBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCFA DUP5 DUP5 DUP5 PUSH2 0x309F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xD2F PUSH32 0x0 DUP5 DUP5 PUSH2 0x318F JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD68 PUSH32 0x0 DUP16 DUP16 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0xD77 JUMPI DUP13 PUSH2 0xD7B JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xE18 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 DUP16 PUSH2 0x2672 JUMP JUMPDEST DUP1 SWAP5 POP DUP2 SWAP6 POP POP POP POP POP SWAP12 POP SWAP12 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xE82 PUSH32 0x0 DUP15 PUSH32 0x0 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP8 PUSH2 0xE91 JUMPI DUP13 PUSH2 0xE95 JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0xFF DUP11 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF1F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xF31 DUP15 DUP15 DUP15 DUP15 DUP15 DUP15 PUSH2 0xF46 JUMP JUMPDEST SWAP1 SWAP16 SWAP1 SWAP15 POP SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0xF8D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFBC DUP10 PUSH32 0x0 DUP11 DUP11 DUP11 ADDRESS DUP11 PUSH2 0x2672 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP PUSH2 0xFCC DUP10 DUP7 DUP6 PUSH2 0x33B4 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1032 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1046 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1054 DUP6 DUP4 PUSH2 0x354C JUMP JUMPDEST POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1104 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3644 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1117 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x115C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D6 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x11FA DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x116C JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0x11E0 PUSH32 0x0 DUP11 DUP11 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x11AE JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 DUP12 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x11CB JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x32DC JUMP JUMPDEST DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x11ED JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x377B JUMP JUMPDEST PUSH2 0x1239 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x38ED SWAP2 POP POP JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1288 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x12FD DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1298 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH2 0x12F7 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x12DA JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 DUP11 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x11CB JUMPI INVALID JUMPDEST DUP11 PUSH2 0x377B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x130F JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1388 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x139E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP9 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP9 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x13E0 SWAP3 SWAP1 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x3B33 SWAP2 POP POP JUMP JUMPDEST DUP7 PUSH2 0x1492 DUP3 DUP9 DUP9 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x13F5 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x146E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3E5E AND JUMP JUMPDEST LT ISZERO PUSH2 0x14CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D6 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x151F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x1559 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x15C4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1622 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3644 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1635 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x167A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D6 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x168A DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x116C JUMPI INVALID JUMPDEST PUSH2 0x16C9 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x38ED SWAP2 POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1708 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x175A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1239 DUP5 DUP4 PUSH1 0x1 DUP6 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1772 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x354C JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x17E9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1818 DUP9 PUSH32 0x0 DUP10 DUP10 DUP10 ADDRESS DUP10 PUSH2 0x2672 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH2 0x189C SWAP3 POP DUP11 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x186B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x187F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1895 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x33B4 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1916 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1239 DUP5 DUP4 PUSH2 0x354C JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1968 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x19A2 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A0D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1A1D DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1298 JUMPI INVALID JUMPDEST PUSH2 0x1A5B DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP ADDRESS SWAP3 POP PUSH2 0x3B33 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AD9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP7 DUP2 LT ISZERO PUSH2 0x1B32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D6 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2E1A7D4D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x14CF DUP5 DUP3 PUSH2 0x354C JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1C00 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x1C3A JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1CA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1D03 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x318F SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1D13 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x167A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4624 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCFA DUP5 DUP5 DUP5 PUSH2 0x3EB6 JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1DAB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1E09 PUSH32 0x0 DUP10 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x318F SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1E19 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x115C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4624 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x1EA4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x1EDB JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1F46 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1FA4 PUSH32 0x0 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x318F SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP CALLVALUE DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1FB4 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT ISZERO PUSH2 0x1FF9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4624 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2035 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2068 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x20E1 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x12DA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x20EE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2145 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2159 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x216F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2177 JUMPI INVALID JUMPDEST PUSH2 0x21B6 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x38ED SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x21C3 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE GT ISZERO PUSH2 0x21F2 JUMPI PUSH2 0x21F2 CALLER DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x21E3 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD CALLVALUE SUB PUSH2 0x354C JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x224A PUSH32 0x0 DUP14 PUSH32 0x0 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH2 0x2259 JUMPI DUP12 PUSH2 0x225D JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xD505ACCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0xC4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH4 0xD505ACCF SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x22F9 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x17A3 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2350 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x2387 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x23F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2450 PUSH32 0x0 CALLVALUE DUP9 DUP9 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3644 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP DUP7 DUP3 PUSH1 0x1 DUP5 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x2463 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x24A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45D6 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x24E4 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x252B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2590 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x12DA JUMPI INVALID JUMPDEST DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x259D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2608 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x261E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2626 JUMPI INVALID JUMPDEST PUSH2 0x21F2 DUP3 DUP8 DUP8 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x38ED SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCFA DUP5 DUP5 DUP5 PUSH2 0x3FA6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 TIMESTAMP DUP2 LT ISZERO PUSH2 0x26B9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x26E6 PUSH32 0x0 DUP13 DUP13 PUSH2 0x32DC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD DUP14 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH4 0x23B872DD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2741 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2755 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x276B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x89AFCB4400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 SWAP3 DUP7 AND SWAP3 PUSH4 0x89AFCB44 SWAP3 PUSH1 0x24 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27E5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x2815 DUP15 DUP15 PUSH2 0x4052 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP15 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2838 JUMPI DUP2 DUP4 PUSH2 0x283B JUMP JUMPDEST DUP3 DUP3 JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP11 DUP8 LT ISZERO PUSH2 0x287F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x466A PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP7 LT ISZERO PUSH2 0x28BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4569 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST DUP1 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2937 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x296E JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x29D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E526F757465723A20494E56414C49445F5041544800000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLVALUE SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A4D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x2AB2 PUSH32 0x0 DUP10 DUP10 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x12DA JUMPI INVALID JUMPDEST DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2B2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2B34 JUMPI INVALID JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x2B46 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP10 DUP2 MUL DUP3 DUP2 ADD DUP3 ADD SWAP1 SWAP4 MSTORE DUP10 DUP3 MSTORE SWAP3 SWAP4 POP PUSH2 0x2C17 SWAP3 SWAP1 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP10 SWAP3 POP PUSH2 0x3B33 SWAP2 POP POP JUMP JUMPDEST DUP8 PUSH2 0x1492 DUP3 DUP10 DUP10 PUSH1 0x0 NOT DUP2 ADD DUP2 DUP2 LT PUSH2 0x2C2C JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0xD2F PUSH32 0x0 DUP5 DUP5 PUSH2 0x3644 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2D07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D15 DUP13 DUP13 DUP13 DUP13 DUP13 DUP13 PUSH2 0x4130 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2D47 PUSH32 0x0 DUP15 DUP15 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH2 0x2D55 DUP14 CALLER DUP4 DUP9 PUSH2 0x377B JUMP JUMPDEST PUSH2 0x2D61 DUP13 CALLER DUP4 DUP8 PUSH2 0x377B JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DCD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 SWAP14 SWAP4 SWAP13 POP SWAP4 SWAP11 POP SWAP2 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 TIMESTAMP DUP2 LT ISZERO PUSH2 0x2E43 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x464A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2E71 DUP11 PUSH32 0x0 DUP12 CALLVALUE DUP13 DUP13 PUSH2 0x4130 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2EC3 PUSH32 0x0 DUP13 PUSH32 0x0 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH2 0x2ED1 DUP12 CALLER DUP4 DUP9 PUSH2 0x377B JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F40 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB DUP3 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FD9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x2FF7 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A627842 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x304F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3063 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3079 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP CALLVALUE DUP5 LT ISZERO PUSH2 0x3091 JUMPI PUSH2 0x3091 CALLER DUP6 CALLVALUE SUB PUSH2 0x354C JUMP JUMPDEST POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x30DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x468F PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x30EF JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x312A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46DD PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x313E DUP6 PUSH2 0x3E5 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3152 DUP3 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3178 DUP4 PUSH2 0x316C DUP9 PUSH2 0x3E8 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4442 AND JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 PUSH2 0x3183 JUMPI INVALID JUMPDEST DIV SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x31E8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E56414C49445F50415448000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x3200 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x322A JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x323E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 MLOAD PUSH1 0x0 NOT ADD JUMPDEST DUP1 ISZERO PUSH2 0x32D4 JUMPI PUSH1 0x0 DUP1 PUSH2 0x328D DUP8 DUP7 PUSH1 0x1 DUP7 SUB DUP2 MLOAD DUP2 LT PUSH2 0x326C JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x3280 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x449A JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x32AF DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x32A0 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x3EB6 JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT PUSH2 0x32BE JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x0 NOT ADD PUSH2 0x3250 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x32EB DUP6 DUP6 PUSH2 0x4052 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0x40231F6B438BCE0797C9ADA29B718A87EA0A5CEA3FE9A771ABDD76BD41A3E545 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x345F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3440 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x34C1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x34C6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x34F4 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x34F4 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x34F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x3545 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A205452414E534645525F4641494C454400 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3598 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3579 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x35FA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x35FF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x363F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4600 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x369D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A20494E56414C49445F50415448000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x36B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x36DF JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x36F0 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x32D4 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3735 DUP8 DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x371E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3280 JUMPI INVALID JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3757 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3748 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0x309F JUMP JUMPDEST DUP5 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3766 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x36FF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR DUP2 MSTORE SWAP3 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 SWAP4 DUP11 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3815 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x37F6 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3877 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x387C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x38AA JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x38AA JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x38E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46B9 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x3B2D JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x390B JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3922 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x393A DUP4 DUP4 PUSH2 0x4052 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP8 DUP6 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x394E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x397C JUMPI DUP3 PUSH1 0x0 PUSH2 0x3980 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP11 MLOAD SUB DUP9 LT PUSH2 0x3997 JUMPI DUP9 PUSH2 0x39D8 JUMP JUMPDEST PUSH2 0x39D8 PUSH32 0x0 DUP8 DUP13 DUP12 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x39CB JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH2 0x3A05 PUSH32 0x0 DUP9 DUP9 PUSH2 0x32DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x22C0D9F DUP5 DUP5 DUP5 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3A42 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3AB3 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3A9B JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3AE0 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3B02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3B16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP10 ADD SWAP9 POP PUSH2 0x38F0 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD SUB DUP2 LT ISZERO PUSH2 0x363F JUMPI PUSH1 0x0 DUP1 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x3B51 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP5 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT PUSH2 0x3B68 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3B80 DUP4 DUP4 PUSH2 0x4052 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x3BB0 PUSH32 0x0 DUP6 DUP6 PUSH2 0x32DC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3BF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x3C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP1 DUP10 AND EQ PUSH2 0x3C58 JUMPI DUP3 DUP5 PUSH2 0x3C5B JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3CB9 DUP3 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 DUP11 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH2 0x3CC6 DUP7 DUP4 DUP4 PUSH2 0x309F JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3CF0 JUMPI DUP3 PUSH1 0x0 PUSH2 0x3CF4 JUMP JUMPDEST PUSH1 0x0 DUP4 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x2 DUP13 MLOAD SUB DUP11 LT PUSH2 0x3D0B JUMPI DUP11 PUSH2 0x3D3F JUMP JUMPDEST PUSH2 0x3D3F PUSH32 0x0 DUP10 DUP15 DUP14 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT PUSH2 0x39CB JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH32 0x22C0D9F00000000000000000000000000000000000000000000000000000000 DUP4 MSTORE PUSH1 0x24 DUP3 ADD DUP8 DUP2 MSTORE PUSH1 0x44 DUP4 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x64 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x84 DUP6 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0xA4 DUP7 ADD DUP2 SWAP1 MSTORE SWAP7 SWAP8 POP SWAP1 DUP13 AND SWAP6 PUSH4 0x22C0D9F SWAP6 DUP11 SWAP6 DUP11 SWAP6 DUP11 SWAP6 SWAP2 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH1 0xC4 DUP7 ADD SWAP3 SWAP1 SWAP2 DUP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3DE2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3DCA JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3E0F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E31 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E45 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP12 ADD SWAP11 POP PUSH2 0x3B36 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0xD32 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x3EF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4704 PUSH1 0x2B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x3F06 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x3F41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46DD PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F65 PUSH2 0x3E8 PUSH2 0x3F59 DUP7 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3F7F PUSH2 0x3E5 PUSH2 0x3F59 DUP7 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3E5E AND JUMP JUMPDEST SWAP1 POP PUSH2 0x3F9C PUSH1 0x1 DUP3 DUP5 DUP2 PUSH2 0x3F8F JUMPI INVALID JUMPDEST DIV SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4442 AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0x3FE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x458E PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x3FF6 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x4031 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x46DD PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0x4042 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x43D6 AND JUMP JUMPDEST DUP2 PUSH2 0x4049 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x40A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x45B2 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x40C6 JUMPI DUP3 DUP5 PUSH2 0x40C9 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4129 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50616E676F6C696E4C6962726172793A205A45524F5F41444452455353000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xE6A4390500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xE6A43905 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x41D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x41ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x42B9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0xC9C6539600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH32 0x0 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC9C65396 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x428C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x42A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x42B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x42E7 PUSH32 0x0 DUP12 DUP12 PUSH2 0x449A JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH1 0x0 EQ DUP1 ISZERO PUSH2 0x42F9 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4309 JUMPI DUP8 SWAP4 POP DUP7 SWAP3 POP PUSH2 0x43C9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4316 DUP10 DUP5 DUP5 PUSH2 0x3FA6 JUMP JUMPDEST SWAP1 POP DUP8 DUP2 GT PUSH2 0x4369 JUMPI DUP6 DUP2 LT ISZERO PUSH2 0x435E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x4569 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP9 SWAP5 POP SWAP3 POP DUP3 PUSH2 0x43C7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4376 DUP10 DUP5 DUP7 PUSH2 0x3FA6 JUMP JUMPDEST SWAP1 POP DUP10 DUP2 GT ISZERO PUSH2 0x4382 JUMPI INVALID JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x43C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x466A PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP5 POP DUP8 SWAP4 POP JUMPDEST POP JUMPDEST POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x43F1 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x43EE JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xD32 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6D756C2D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0xD32 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x44A9 DUP6 DUP6 PUSH2 0x4052 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x44BA DUP9 DUP9 DUP9 PUSH2 0x32DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x44F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4506 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x451C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x4556 JUMPI DUP1 DUP3 PUSH2 0x4559 JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP INVALID POP PUSH2 0x6E67 PUSH16 0x6C696E526F757465723A20494E535546 CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F TIMESTAMP 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD POP PUSH2 0x6E67 PUSH16 0x6C696E4C6962726172793A20494E5355 CHAINID CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD POP PUSH2 0x6E67 PUSH16 0x6C696E4C6962726172793A204944454E SLOAD 0x49 NUMBER COINBASE 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 POP PUSH2 0x6E67 PUSH16 0x6C696E526F757465723A20494E535546 CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A20415641585F SLOAD MSTORE COINBASE 0x4E MSTORE8 CHAINID GASLIMIT MSTORE 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY POP PUSH2 0x6E67 PUSH16 0x6C696E526F757465723A204558434553 MSTORE8 0x49 JUMP GASLIMIT 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD POP PUSH2 0x6E67 PUSH16 0x6C696E526F757465723A204558504952 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP POP PUSH2 0x6E67 PUSH16 0x6C696E526F757465723A20494E535546 CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F COINBASE 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD POP PUSH2 0x6E67 PUSH16 0x6C696E4C6962726172793A20494E5355 CHAINID CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SLOAD PUSH19 0x616E7366657248656C7065723A205452414E53 CHAINID GASLIMIT MSTORE 0x5F CHAINID MSTORE 0x4F 0x4D 0x5F CHAINID COINBASE 0x49 0x4C GASLIMIT DIFFICULTY POP PUSH2 0x6E67 PUSH16 0x6C696E4C6962726172793A20494E5355 CHAINID CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE POP PUSH2 0x6E67 PUSH16 0x6C696E4C6962726172793A20494E5355 CHAINID CHAINID 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURNDATACOPY 0x24 0x27 0xFB EXP JUMP DUP6 0xBB JUMPDEST 0xE6 SIGNEXTEND SWAP3 0xD4 MSTORE8 0xAE 0xE0 CALL SWAP6 0xDE PUSH30 0x2346DC3C583C9043DA41535764736F6C6343000606003300000000000000 ","sourceMap":"340:18570:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;819:10;-1:-1:-1;;;;;833:5:3;819:19;;812:27;;;;340:18570;;12:1:-1;9;2:12;17858:261:3;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17858:261:3;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17858:261:3;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;18655:252;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18655:252:3;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18655:252:3;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;18655:252:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;18655:252:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18655:252:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18655:252:3;;-1:-1:-1;18655:252:3;;-1:-1:-1;;;;;18655:252:3:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18655:252:3;;;;;;;;;;;;;;;;;5662:675;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5662:675:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;5662:675:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6343:674;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6343:674:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;6343:674:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4972:684::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4972:684:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;4972:684:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9384:625::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9384:625:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9384:625:3;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;9384:625:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9384:625:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9384:625:3;;-1:-1:-1;9384:625:3;-1:-1:-1;;;;;;9384:625:3;;;;;;;;:::i;15196:712::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15196:712:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;15196:712:3;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;15196:712:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;15196:712:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;15196:712:3;;-1:-1:-1;15196:712:3;-1:-1:-1;;;;;;15196:712:3;;;;;;;;:::i;12164:851::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12164:851:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;12164:851:3;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;12164:851:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;12164:851:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;12164:851:3;;-1:-1:-1;12164:851:3;-1:-1:-1;;;;;;12164:851:3;;;;;;;;:::i;470:39::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;470:39:3;;;:::i;:::-;;;;-1:-1:-1;;;;;470:39:3;;;;;;;;;;;;;;7096:711;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7096:711:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;7096:711:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16773:846::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16773:846:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;16773:846:3;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;16773:846:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;16773:846:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;16773:846:3;;-1:-1:-1;16773:846:3;-1:-1:-1;;;;;;16773:846:3;;;;;;;;:::i;11329:829::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11329:829:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;11329:829:3;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;11329:829:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;11329:829:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11329:829:3;;-1:-1:-1;11329:829:3;-1:-1:-1;;;;;;11329:829:3;;;;;;;;:::i;18127:260::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18127:260:3;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18127:260:3;;;;;;;;;;;;:::i;10015:603::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10015:603:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10015:603:3;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;10015:603:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10015:603:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10015:603:3;;-1:-1:-1;10015:603:3;-1:-1:-1;;;;;;10015:603:3;;;;;;;;:::i;13021:814::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;13021:814:3;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;13021:814:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;13021:814:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13021:814:3;;-1:-1:-1;13021:814:3;-1:-1:-1;;;;;;13021:814:3;;;;;;;;:::i;7813:723::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7813:723:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;7813:723:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10624:699::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10624:699:3;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;10624:699:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10624:699:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10624:699:3;;-1:-1:-1;10624:699:3;-1:-1:-1;;;;;;10624:699:3;;;;;;;;:::i;17663:187::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17663:187:3;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17663:187:3;;;;;;;;;;;;:::i;4107:859::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4107:859:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;4107:859:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;422:41::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;422:41:3;;;:::i;15914:853::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;15914:853:3;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;15914:853:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;15914:853:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;15914:853:3;;-1:-1:-1;15914:853:3;-1:-1:-1;;;;;;15914:853:3;;;;;;;;:::i;18395:252::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18395:252:3;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18395:252:3;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;18395:252:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;18395:252:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18395:252:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18395:252:3;;-1:-1:-1;18395:252:3;;-1:-1:-1;;;;;18395:252:3:i;2333:736::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2333:736:3;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2333:736:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;3075:989;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;3075:989:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17858:261::-;18011:14;18050:61;18079:8;18089:9;18100:10;18050:28;:61::i;:::-;18043:68;17858:261;-1:-1:-1;;;;17858:261:3:o;18655:252::-;18799:21;18845:54;18874:7;18883:9;18894:4;18845:28;:54::i;:::-;18838:61;;18655:252;;;;;:::o;5662:675::-;5968:12;5982;6007;6022:48;6046:7;6055:6;6063;6022:23;:48::i;:::-;6007:63;;6081:10;6094;:33;;6118:9;6094:33;;;-1:-1:-1;;6094:33:3;6138:79;;;-1:-1:-1;;;6138:79:3;;6165:10;6138:79;;;;6185:4;6138:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6081:46;;-1:-1:-1;;;;;;6138:26:3;;;;;:79;;;;;-1:-1:-1;;6138:79:3;;;;;;;;-1:-1:-1;6138:26:3;:79;;;2:2:-1;;;;27:1;24;17:12;2:2;6138:79:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6138:79:3;;;;6249:80;6265:6;6273;6281:9;6292:10;6304;6316:2;6320:8;6249:15;:80::i;:::-;6228:101;;;;;;;;5662:675;;;;;;;;;;;;;;;;:::o;6343:674::-;6634:16;6652:15;6680:12;6695:46;6719:7;6728:5;6735;6695:23;:46::i;:::-;6680:61;;6752:10;6765;:33;;6789:9;6765:33;;;-1:-1:-1;;6765:33:3;6809:79;;;-1:-1:-1;;;6809:79:3;;6836:10;6809:79;;;;6856:4;6809:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6752:46;;-1:-1:-1;;;;;;6809:26:3;;;;;:79;;;;;-1:-1:-1;;6809:79:3;;;;;;;;-1:-1:-1;6809:26:3;:79;;;2:2:-1;;;;27:1;24;17:12;2:2;6809:79:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6809:79:3;;;;6927:82;6947:5;6954:9;6965:14;6981:13;6996:2;7000:8;6927:19;:82::i;:::-;6899:110;;;;-1:-1:-1;6343:674:3;-1:-1:-1;;;;;;;;;;;;;6343:674:3:o;4972:684::-;5211:16;5229:15;5192:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;5285:198:::1;5315:5;5335;5355:9;5379:14;5408:13;5444:4;5464:8;5285:15;:198::i;:::-;5257:226:::0;;-1:-1:-1;5257:226:3;-1:-1:-1;5494:51:3::1;5522:5:::0;5529:2;5257:226;5494:27:::1;:51::i;:::-;5563:5;-1:-1:-1::0;;;;;5556:22:3::1;;5579:10;5556:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;5556:34:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;5556:34:3;;;;5601:47;5633:2;5637:10;5601:31;:47::i;:::-;4972:684:::0;;;;;;;;;;:::o;9384:625::-;9608:21;9589:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;9652:54:::1;9682:7;9691:8;9701:4;;9652:54;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9652:29:3::1;::::0;-1:-1:-1;;;9652:54:3:i:1;:::-;9642:64;;9756:12;9725:7;9750:1;9733:7;:14;:18;9725:27;;;;;;;;;;;;;;:43;;9717:98;;;;-1:-1:-1::0;;;9717:98:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9826:140;9872:4;;9877:1;9872:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;9872:7:3::1;9881:10;9893:50;9917:7;9926:4;;9931:1;9926:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;9926:7:3::1;9935:4;;9940:1;9935:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;9935:7:3::1;9893:23;:50::i;:::-;9945:7;9953:1;9945:10;;;;;;;;;;;;;;9826:31;:140::i;:::-;9977:24;9983:7;9992:4;;9977:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9998:2:3;;-1:-1:-1;9977:5:3::1;::::0;-1:-1:-1;;9977:24:3:i:1;:::-;9384:625:::0;;;;;;;;;:::o;15196:712::-;15430:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;15451:138:::1;15497:4;;15502:1;15497:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;15497:7:3::1;15506:10;15518:50;15542:7;15551:4;;15556:1;15551:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;15551:7:3::1;15560:4;;15565:1;15560:7;;;;;;15518:50;15570:8;15451:31;:138::i;:::-;15600:18;15628:4:::0;;-1:-1:-1;;15633:15:3;;15628:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;15628:21:3::1;-1:-1:-1::0;;;;;15621:39:3::1;;15661:2;15621:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;15621:43:3::1;-1:-1:-1::0;;;;;15621:43:3::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15621:43:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15621:43:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15621:43:3;15675:44:::1;::::0;;15621:43:::1;15675:44:::0;;::::1;::::0;;;;;;;;;;;15621:43;;-1:-1:-1;15675:44:3::1;::::0;;;15710:4;;;;;;15675:44;::::1;::::0;15710:4;;15675:44;15710:4;15675:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;15716:2:3;;-1:-1:-1;15675:34:3::1;::::0;-1:-1:-1;;15675:44:3:i:1;:::-;15818:12:::0;15752:62:::1;15800:13:::0;15759:4;;-1:-1:-1;;15764:15:3;;15759:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;15759:21:3::1;-1:-1:-1::0;;;;;15752:39:3::1;;15792:2;15752:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;15752:43:3::1;-1:-1:-1::0;;;;;15752:43:3::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15752:43:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15752:43:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15752:43:3;;:62:::1;:47;:62;:::i;:::-;:78;;15730:170;;;;-1:-1:-1::0;;;15730:170:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:1;15196:712:::0;;;;;;;:::o;12164:851::-;12379:21;12351:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;12451:5:3::1;12426:30;:4:::0;;-1:-1:-1;;12431:15:3;;12426:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;12426:21:3::1;-1:-1:-1::0;;;;;12426:30:3::1;;12418:71;;;::::0;;-1:-1:-1;;;12418:71:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;12510:54;12540:7;12549:8;12559:4;;12510:54;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12510:29:3::1;::::0;-1:-1:-1;;;12510:54:3:i:1;:::-;12500:64;;12614:12;12583:7;12608:1;12591:7;:14;:18;12583:27;;;;;;;;;;;;;;:43;;12575:98;;;;-1:-1:-1::0;;;12575:98:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12684:140;12730:4;;12735:1;12730:7;;;;;;12684:140;12835:35;12841:7;12850:4;;12835:35;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12864:4:3::1;::::0;-1:-1:-1;12835:5:3::1;::::0;-1:-1:-1;;12835:35:3:i:1;:::-;12888:5;-1:-1:-1::0;;;;;12881:22:3::1;;12904:7;12929:1;12912:7;:14;:18;12904:27;;;;;;;;;;;;;;12881:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;12881:51:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12881:51:3;;;;12943:64;12975:2;12979:7;13004:1;12987:7;:14;:18;12979:27;;;;;;;;;;;;;;12943:31;:64::i;470:39::-:0;;;:::o;7096:711::-;7364:15;7345:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;7409:198:::1;7439:5;7459;7479:9;7503:14;7532:13;7568:4;7588:8;7409:15;:198::i;:::-;7657:38;::::0;;-1:-1:-1;;;7657:38:3;;7689:4:::1;7657:38;::::0;::::1;::::0;;;7392:215;;-1:-1:-1;7618:78:3::1;::::0;-1:-1:-1;7646:5:3;;7653:2;;-1:-1:-1;;;;;7657:23:3;::::1;::::0;::::1;::::0;:38;;;;;::::1;::::0;;;;;;;;;:23;:38;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;7657:38:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7657:38:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;7657:38:3;7618:27:::1;:78::i;:::-;7714:5;-1:-1:-1::0;;;;;7707:22:3::1;;7730:10;7707:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;7707:34:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7707:34:3;;;;7752:47;7784:2;7788:10;7752:31;:47::i;16773:846::-:0;17041:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;17100:5:3::1;17075:30;:4:::0;;-1:-1:-1;;17080:15:3;;17075:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;17075:21:3::1;-1:-1:-1::0;;;;;17075:30:3::1;;17067:71;;;::::0;;-1:-1:-1;;;17067:71:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;17149:138;17195:4;;17200:1;17195:7;;;;;;17149:138;17298:55;17333:4;;17298:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;17347:4:3::1;::::0;-1:-1:-1;17298:34:3::1;::::0;-1:-1:-1;;17298:55:3:i:1;:::-;17381:38;::::0;;-1:-1:-1;;;17381:38:3;;17413:4:::1;17381:38;::::0;::::1;::::0;;;17364:14:::1;::::0;-1:-1:-1;;;;;17388:5:3::1;17381:23;::::0;::::1;::::0;:38;;;;;::::1;::::0;;;;;;;;;:23;:38;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;17381:38:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17381:38:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;17381:38:3;;-1:-1:-1;17438:25:3;;::::1;;17430:80;;;;-1:-1:-1::0;;;17430:80:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17528:5;-1:-1:-1::0;;;;;17521:22:3::1;;17544:9;17521:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;17521:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17521:33:3;;;;17565:46;17597:2;17601:9;17565:31;:46::i;11329:829::-:0;11544:21;11516:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;11616:5:3::1;11591:30;:4:::0;;-1:-1:-1;;11596:15:3;;11591:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;11591:21:3::1;-1:-1:-1::0;;;;;11591:30:3::1;;11583:71;;;::::0;;-1:-1:-1;;;11583:71:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;11675:54;11704:7;11713:9;11724:4;;11675:54;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;11675:28:3::1;::::0;-1:-1:-1;;;11675:54:3:i:1;:::-;11665:64;;11762:11;11748:7;11756:1;11748:10;;;;;;;;;;;;;;:25;;11740:76;;;;-1:-1:-1::0;;;11740:76:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18127:260:::0;18280:13;18318:61;18346:9;18357;18368:10;18318:27;:61::i;10015:603::-;10239:21;10220:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;10283:54:::1;10312:7;10321:9;10332:4;;10283:54;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10283:28:3::1;::::0;-1:-1:-1;;;10283:54:3:i:1;:::-;10273:64;;10370:11;10356:7;10364:1;10356:10;;;;;;;;;;;;;;:25;;10348:76;;;;-1:-1:-1::0;;;10348:76:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13021:814:::0;13235:21;13207:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;13293:5:::1;-1:-1:-1::0;;;;;13282:16:3::1;:4;;13287:1;13282:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;13282:7:3::1;-1:-1:-1::0;;;;;13282:16:3::1;;13274:57;;;::::0;;-1:-1:-1;;;13274:57:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;13352:54;13381:7;13390:9;13401:4;;13352:54;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;13352:28:3::1;::::0;-1:-1:-1;;;13352:54:3:i:1;:::-;13342:64;;13439:9;13425:7;13433:1;13425:10;;;;;;;;;;;;;;:23;;13417:74;;;;-1:-1:-1::0;;;13417:74:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13509:5;-1:-1:-1::0;;;;;13502:21:3::1;;13531:7;13539:1;13531:10;;;;;;;;;;;;;;13502:42;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;13502:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;13502:42:3;;;;;13569:5;-1:-1:-1::0;;;;;13562:22:3::1;;13585:50;13609:7;13618:4;;13623:1;13618:7;;;;;;13585:50;13637:7;13645:1;13637:10;;;;;;;;;;;;;;13562:86;;;;;;;;;;;;;-1:-1:-1::0;;;;;13562:86:3::1;-1:-1:-1::0;;;;;13562:86:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;13562:86:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;13562:86:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;13562:86:3;13555:94:::1;;;;13660:24;13666:7;13675:4;;13660:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;13681:2:3;;-1:-1:-1;13660:5:3::1;::::0;-1:-1:-1;;13660:24:3:i:1;:::-;13748:7;13756:1;13748:10;;;;;;;;;;;;;;13736:9;:22;13732:95;;;13760:67;13792:10;13816:7;13824:1;13816:10;;;;;;;;;;;;;;13804:9;:22;13760:31;:67::i;:::-;13021:814:::0;;;;;;;;:::o;7813:723::-;8133:15;8161:12;8176:46;8200:7;8209:5;8216;8176:23;:46::i;:::-;8161:61;;8233:10;8246;:33;;8270:9;8246:33;;;-1:-1:-1;;8246:33:3;8290:79;;;-1:-1:-1;;;8290:79:3;;8317:10;8290:79;;;;8337:4;8290:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8233:46;;-1:-1:-1;;;;;;8290:26:3;;;;;:79;;;;;-1:-1:-1;;8290:79:3;;;;;;;;-1:-1:-1;8290:26:3;:79;;;2:2:-1;;;;27:1;24;17:12;2:2;8290:79:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8290:79:3;;;;8393:135;8456:5;8463:9;8474:14;8490:13;8505:2;8509:8;8393:48;:135::i;:::-;8380:148;7813:723;-1:-1:-1;;;;;;;;;;;;;7813:723:3:o;10624:699::-;10841:21;10813:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;10899:5:::1;-1:-1:-1::0;;;;;10888:16:3::1;:4;;10893:1;10888:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;10888:7:3::1;-1:-1:-1::0;;;;;10888:16:3::1;;10880:57;;;::::0;;-1:-1:-1;;;10880:57:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;10958:55;10988:7;10997:9;11008:4;;10958:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10958:29:3::1;::::0;-1:-1:-1;;;10958:55:3:i:1;:::-;10948:65;;11063:12;11032:7;11057:1;11040:7;:14;:18;11032:27;;;;;;;;;;;;;;:43;;11024:98;;;;-1:-1:-1::0;;;11024:98:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11140:5;-1:-1:-1::0;;;;;11133:21:3::1;;11162:7;11170:1;11162:10;;;;;;;;;;;;;;11133:42;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;11133:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;11133:42:3;;;;;11200:5;-1:-1:-1::0;;;;;11193:22:3::1;;11216:50;11240:7;11249:4;;11254:1;11249:7;;;;;;11216:50;11268:7;11276:1;11268:10;;;;;;;;;;;;;;11193:86;;;;;;;;;;;;;-1:-1:-1::0;;;;;11193:86:3::1;-1:-1:-1::0;;;;;11193:86:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;11193:86:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;11193:86:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;11193:86:3;11186:94:::1;;;;11291:24;11297:7;11306:4;;11291:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;11312:2:3;;-1:-1:-1;11291:5:3::1;::::0;-1:-1:-1;;11291:24:3:i:1;17663:187::-:0;17760:12;17792:50;17814:7;17823:8;17833;17792:21;:50::i;4107:859::-;4361:12;4375;4342:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;4400:12:::1;4415:48;4439:7;4448:6;4456;4415:23;:48::i;:::-;4474:61;::::0;;-1:-1:-1;;;4474:61:3;;4507:10:::1;4474:61;::::0;::::1;::::0;-1:-1:-1;;;;;4474:32:3;::::1;:61:::0;;;;;;;;;;;;;;4400:63;;-1:-1:-1;4474:32:3;;::::1;::::0;:61;;;;;::::1;::::0;;;;;;;;;-1:-1:-1;4474:32:3;:61;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4474:61:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4474:61:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;4603:28:3::1;::::0;;;;;-1:-1:-1;;;;;4603:28:3;;::::1;;::::0;::::1;::::0;;;4573:12:::1;::::0;;;4603:24;;::::1;::::0;::::1;::::0;:28;;;;;;;;;;;4573:12;4603:24;:28;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4603:28:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4603:28:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;4603:28:3;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;4603:28:3;-1:-1:-1;4643:14:3::1;4662:42;4689:6:::0;4697;4662:26:::1;:42::i;:::-;4642:62;;;4746:6;-1:-1:-1::0;;;;;4736:16:3::1;:6;-1:-1:-1::0;;;;;4736:16:3::1;;:58;;4777:7;4786;4736:58;;;4756:7;4765;4736:58;4715:79:::0;;-1:-1:-1;4715:79:3;-1:-1:-1;4813:21:3;;::::1;;4805:71;;;;-1:-1:-1::0;;;4805:71:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4906:10;4895:7;:21;;4887:71;;;;-1:-1:-1::0;;;4887:71:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:1;;;;4107:859:::0;;;;;;;;;;;:::o;422:41::-;;;:::o;15914:853::-;16175:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;16220:5:::1;-1:-1:-1::0;;;;;16209:16:3::1;:4;;16214:1;16209:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;16209:7:3::1;-1:-1:-1::0;;;;;16209:16:3::1;;16201:57;;;::::0;;-1:-1:-1;;;16201:57:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;16269:13;16285:9;16269:25;;16312:5;-1:-1:-1::0;;;;;16305:21:3::1;;16334:8;16305:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16305:40:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16305:40:3;;;;;16370:5;-1:-1:-1::0;;;;;16363:22:3::1;;16386:50;16410:7;16419:4;;16424:1;16419:7;;;;;;16386:50;16438:8;16363:84;;;;;;;;;;;;;-1:-1:-1::0;;;;;16363:84:3::1;-1:-1:-1::0;;;;;16363:84:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16363:84:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16363:84:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;16363:84:3;16356:92:::1;;;;16459:18;16487:4:::0;;-1:-1:-1;;16492:15:3;;16487:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;16487:21:3::1;-1:-1:-1::0;;;;;16480:39:3::1;;16520:2;16480:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;16480:43:3::1;-1:-1:-1::0;;;;;16480:43:3::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16480:43:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16480:43:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;16480:43:3;16534:44:::1;::::0;;16480:43:::1;16534:44:::0;;::::1;::::0;;;;;;;;;;;16480:43;;-1:-1:-1;16534:44:3::1;::::0;;;16569:4;;;;;;16534:44;::::1;::::0;16569:4;;16534:44;16569:4;16534:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;16575:2:3;;-1:-1:-1;16534:34:3::1;::::0;-1:-1:-1;;16534:44:3:i:1;:::-;16677:12:::0;16611:62:::1;16659:13:::0;16618:4;;-1:-1:-1;;16623:15:3;;16618:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;16618:21:3::1;-1:-1:-1::0;;;;;16611:39:3::1;;16651:2;16611:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;16611:43:3::1;-1:-1:-1::0;;;;;16611:43:3::1;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;18395:252:3::0;18539:21;18585:54;18615:7;18624:8;18634:4;18585:29;:54::i;2333:736::-;2621:12;2635;2649:14;2602:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;2697:85:::1;2711:6;2719;2727:14;2743;2759:10;2771;2697:13;:85::i;:::-;2676:106:::0;;-1:-1:-1;2676:106:3;-1:-1:-1;2793:12:3::1;2808:48;2832:7;2841:6:::0;2849;2808:23:::1;:48::i;:::-;2793:63;;2867:66;2899:6;2907:10;2919:4;2925:7;2867:31;:66::i;:::-;2944;2976:6;2984:10;2996:4;3002:7;2944:31;:66::i;:::-;3047:4;-1:-1:-1::0;;;;;3033:24:3::1;;3058:2;3033:28;;;;;;;;;;;;;-1:-1:-1::0;;;;;3033:28:3::1;-1:-1:-1::0;;;;;3033:28:3::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3033:28:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3033:28:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3033:28:3;2333:736;;;;-1:-1:-1;3033:28:3;;-1:-1:-1;2333:736:3;;-1:-1:-1;;;;;;;;;2333:736:3:o;3075:989::-;3330:16;3348:15;3365:14;3311:8;580:15;568:8;:27;;560:63;;;;;-1:-1:-1;;;560:63:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;560:63:3;;;;;;;;;;;;;;;3420:178:::1;3448:5;3468;3488:18;3521:9;3545:14;3574:13;3420;:178::i;:::-;3392:206:::0;;-1:-1:-1;3392:206:3;-1:-1:-1;3609:12:3::1;3624:46;3648:7;3657:5:::0;3664::::1;3624:23;:46::i;:::-;3609:61;;3681:69;3713:5;3720:10;3732:4;3738:11;3681:31;:69::i;:::-;3768:5;-1:-1:-1::0;;;;;3761:21:3::1;;3790:10;3761:42;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3761:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3761:42:3;;;;;3828:5;-1:-1:-1::0;;;;;3821:22:3::1;;3844:4;3850:10;3821:40;;;;;;;;;;;;;-1:-1:-1::0;;;;;3821:40:3::1;-1:-1:-1::0;;;;;3821:40:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3821:40:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3821:40:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3821:40:3;3814:48:::1;;;;3899:4;-1:-1:-1::0;;;;;3885:24:3::1;;3910:2;3885:28;;;;;;;;;;;;;-1:-1:-1::0;;;;;3885:28:3::1;-1:-1:-1::0;;;;;3885:28:3::1;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3885:28:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3885:28:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3885:28:3;;-1:-1:-1;3965:9:3::1;:22:::0;-1:-1:-1;3961:95:3::1;;;3989:67;4021:10;4045;4033:9;:22;3989:31;:67::i;:::-;634:1;3075:989:::0;;;;;;;;;;;:::o;2264:515:7:-;2357:14;2403:1;2392:8;:12;2384:67;;;;-1:-1:-1;;;2384:67:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2482:1;2470:9;:13;:31;;;;;2500:1;2487:10;:14;2470:31;2462:83;;;;-1:-1:-1;;;2462:83:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2556:20;2579:17;:8;2592:3;2579:17;:12;:17;:::i;:::-;2556:40;-1:-1:-1;2607:14:7;2624:31;2556:40;2644:10;2624:31;:19;:31;:::i;:::-;2607:48;-1:-1:-1;2666:16:7;2685:40;2709:15;2685:19;:9;2699:4;2685:19;:13;:19;:::i;:::-;:23;:40;:23;:40;:::i;:::-;2666:59;;2760:11;2748:9;:23;;;;;;;2264:515;-1:-1:-1;;;;;;;2264:515:7:o;4043:531::-;4144:21;4201:1;4186:4;:11;:16;;4178:58;;;;;-1:-1:-1;;;4178:58:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;4268:4;:11;4257:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4257:23:7;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;4257:23:7;;4247:33;;4321:9;4291:7;4316:1;4299:7;:14;:18;4291:27;;;;;;;;;;;;;;;;;:39;4355:11;;-1:-1:-1;;4355:15:7;4341:226;4372:5;;4341:226;;4400:14;4416:15;4435:42;4447:7;4456:4;4465:1;4461;:5;4456:11;;;;;;;;;;;;;;4469:4;4474:1;4469:7;;;;;;;;;;;;;;4435:11;:42::i;:::-;4399:78;;;;4509:46;4521:7;4529:1;4521:10;;;;;;;;;;;;;;4533:9;4544:10;4509:11;:46::i;:::-;4492:7;4504:1;4500;:5;4492:14;;;;;;;;;;;;;;;;;:63;-1:-1:-1;;;;4379:3:7;4341:226;;;;4043:531;;;;;:::o;784:478::-;873:12;899:14;915;933:26;944:6;952;933:10;:26::i;:::-;1097:32;;;-1:-1:-1;;1097:32:7;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;1097:32:7;;;;;1087:43;;;;;;1000:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1000:251:7;;;;;;;990:262;;;;;;;;;784:478;-1:-1:-1;;;;;784:478:7:o;622:398:2:-;854:45;;;-1:-1:-1;;;;;854:45:2;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;854:45:2;;;;;;;25:18:-1;;61:17;;96:58;182:15;854:45:2;179:29:-1;160:49;;843:57:2;;;;808:12;;822:17;;843:10;;;;854:45;843:57;;;25:18:-1;843:57:2;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;843:57:2;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;807:93:2;;;;919:7;:57;;;;-1:-1:-1;931:11:2;;:16;;:44;;;962:4;951:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;951:24:2;931:44;911:101;;;;;-1:-1:-1;;;911:101:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;622:398;;;;;:::o;1484:202::-;1598:12;;;1558;1598;;;;;;;;;-1:-1:-1;;;;;1576:7:2;;;1591:5;;1576:35;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1576:35:2;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1557:54:2;;;1630:7;1622:56;;;;-1:-1:-1;;;1622:56:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1484:202;;;:::o;3452:510:7:-;3553:21;3610:1;3595:4;:11;:16;;3587:58;;;;;-1:-1:-1;;;3587:58:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3677:4;:11;3666:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3666:23:7;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;3666:23:7;;3656:33;;3713:8;3700:7;3708:1;3700:10;;;;;;;;;;;;;:21;;;;;3737:6;3732:223;3763:1;3749:4;:11;:15;3745:1;:19;3732:223;;;3787:14;3803:15;3822:42;3834:7;3843:4;3848:1;3843:7;;;;;;;;;;;;;;3852:4;3857:1;3861;3857:5;3852:11;;;;;;;3822:42;3786:78;;;;3896:47;3909:7;3917:1;3909:10;;;;;;;;;;;;;;3921:9;3932:10;3896:12;:47::i;:::-;3879:7;3887:1;3891;3887:5;3879:14;;;;;;;;;;;;;;;;;:64;-1:-1:-1;;3766:3:7;;3732:223;;1028:448:2;1299:51;;;-1:-1:-1;;;;;1299:51:2;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1299:51:2;;;;;;;25:18:-1;;61:17;;96:58;182:15;-1:-1;;;179:29;160:49;;1288:63:2;;;;1253:12;;1267:17;;1288:10;;;;1299:51;1288:63;;;25:18:-1;1288:63:2;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1288:63:2;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1252:99:2;;;;1370:7;:57;;;;-1:-1:-1;1382:11:2;;:16;;:44;;;1413:4;1402:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1402:24:2;1382:44;1362:106;;;;-1:-1:-1;;;1362:106:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1028:448;;;;;;:::o;8647:731:3:-;8754:6;8749:622;8780:1;8766:4;:11;:15;8762:1;:19;8749:622;;;8804:13;8819:14;8838:4;8843:1;8838:7;;;;;;;;;;;;;;8847:4;8852:1;8856;8852:5;8847:11;;;;;;;;;;;;;;8803:56;;;;8875:14;8894:41;8921:5;8928:6;8894:26;:41::i;:::-;8874:61;;;8950:14;8967:7;8975:1;8979;8975:5;8967:14;;;;;;;;;;;;;;8950:31;;8997:15;9014;9042:6;-1:-1:-1;;;;;9033:15:3;:5;-1:-1:-1;;;;;9033:15:3;;:61;;9075:9;9091:1;9033:61;;;9057:1;9061:9;9033:61;8996:98;;;;9109:10;9140:1;9126:4;:11;:15;9122:1;:19;:81;;9200:3;9122:81;;;9144:53;9168:7;9177:6;9185:4;9190:1;9194;9190:5;9185:11;;;;;;;;;;;;;;9144:23;:53::i;:::-;9109:94;;9232:47;9256:7;9265:5;9272:6;9232:23;:47::i;:::-;-1:-1:-1;;;;;9218:67:3;;9304:10;9316;9328:2;9342:1;9332:12;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;108:14;9332:12:3;87:42:-1;143:17;;-1:-1;9332:12:3;;9218:141;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9218:141:3;-1:-1:-1;;;;;9218:141:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9218:141:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9218:141:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8783:3:3;;;;;-1:-1:-1;8749:622:3;;-1:-1:-1;;;;;;;;8749:622:3;;;8647:731;;;:::o;13982:1208::-;14095:6;14090:1093;14121:1;14107:4;:11;:15;14103:1;:19;14090:1093;;;14145:13;14160:14;14179:4;14184:1;14179:7;;;;;;;;;;;;;;14188:4;14193:1;14197;14193:5;14188:11;;;;;;;;;;;;;;14144:56;;;;14216:14;14235:41;14262:5;14269:6;14235:26;:41::i;:::-;14215:61;;;14291:18;14326:47;14350:7;14359:5;14366:6;14326:23;:47::i;:::-;14291:83;;14389:16;14420:17;14508:13;14523;14541:4;-1:-1:-1;;;;;14541:16:3;;:18;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14541:18:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14541:18:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14541:18:3;;;;;;;14507:52;;;;;-1:-1:-1;14507:52:3;;-1:-1:-1;14575:17:3;;-1:-1:-1;;;;;14616:15:3;;;;;;;:61;;14658:8;14668;14616:61;;;14635:8;14645;14616:61;14574:103;;;;14706:56;14749:12;14713:5;-1:-1:-1;;;;;14706:23:3;;14738:4;14706:38;;;;;;;;;;;;;-1:-1:-1;;;;;14706:38:3;-1:-1:-1;;;;;14706:38:3;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;14706:56:3;14692:70;;14792;14821:11;14834:12;14848:13;14792:28;:70::i;:::-;14777:85;;14090:1093;;;;14893:15;14910;14938:6;-1:-1:-1;;;;;14929:15:3;:5;-1:-1:-1;;;;;14929:15:3;;:67;;14974:12;14993:1;14929:67;;;14953:1;14957:12;14929:67;14892:104;;;;15011:10;15042:1;15028:4;:11;:15;15024:1;:19;:81;;15102:3;15024:81;;;15046:53;15070:7;15079:6;15087:4;15092:1;15096;15092:5;15087:11;;;;;;;15046:53;15158:12;;;15168:1;15158:12;;;;;;;;;;15120:51;;;;;;;;;;;;;;;-1:-1:-1;;;;;15120:51:3;;;;;;;;;;;;;;;;;;;;;;15011:94;;-1:-1:-1;15120:9:3;;;;;;15130:10;;15142;;15011:94;;15158:12;;15120:51;;;;;;;;15158:12;;15120:51;;;;15158:12;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15120:51:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15120:51:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14124:3:3;;;;;-1:-1:-1;14090:1093:3;;-1:-1:-1;;;;;;;;;;14090:1093:3;303:129:8;387:5;;;382:16;;;;374:50;;;;;-1:-1:-1;;;374:50:8;;;;;;;;;;;;;;;;;;;;;;;;;;;2900:470:7;2993:13;3039:1;3027:9;:13;3019:69;;;;-1:-1:-1;;;3019:69:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3119:1;3107:9;:13;:31;;;;;3137:1;3124:10;:14;3107:31;3099:83;;;;-1:-1:-1;;;3099:83:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3193:14;3210:34;3239:4;3210:24;:9;3224;3210:24;:13;:24;:::i;:::-;:28;:34;:28;:34;:::i;:::-;3193:51;-1:-1:-1;3255:16:7;3274:34;3304:3;3274:25;:10;3289:9;3274:25;:14;:25;:::i;:34::-;3255:53;;3330:32;3360:1;3343:11;3331:9;:23;;;;;;;3330:32;:29;:32;:::i;:::-;3319:43;2900:470;-1:-1:-1;;;;;;2900:470:7:o;1823:319::-;1905:12;1948:1;1938:7;:11;1930:60;;;;-1:-1:-1;;;1930:60:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:1;2009:8;:12;:28;;;;;2036:1;2025:8;:12;2009:28;2001:80;;;;-1:-1:-1;;;2001:80:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2126:8;2102:21;:7;2114:8;2102:21;:11;:21;:::i;:::-;:32;;;;;;;1823:319;-1:-1:-1;;;;1823:319:7:o;345:347::-;420:14;436;481:6;-1:-1:-1;;;;;471:16:7;:6;-1:-1:-1;;;;;471:16:7;;;463:65;;;;-1:-1:-1;;;463:65:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;567:6;-1:-1:-1;;;;;558:15:7;:6;-1:-1:-1;;;;;558:15:7;;:53;;596:6;604;558:53;;;577:6;585;558:53;539:72;;-1:-1:-1;539:72:7;-1:-1:-1;;;;;;630:20:7;;622:62;;;;;-1:-1:-1;;;622:62:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;345:347;;;;;:::o;944:1383:3:-;1257:49;;;;;;-1:-1:-1;;;;;1257:49:3;;;;;;;;;;;;;;;;1162:12;;;;;;1274:7;1257:33;;;;;;:49;;;;;;;;;;;;;;;:33;:49;;;2:2:-1;;;;27:1;24;17:12;2:2;1257:49:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1257:49:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1257:49:3;-1:-1:-1;;;;;1257:63:3;;1253:148;;;1337:52;;;;;;-1:-1:-1;;;;;1337:52:3;;;;;;;;;;;;;;;;1354:7;1337:36;;;;;;:52;;;;;;;;;;;;;;;-1:-1:-1;1337:36:3;:52;;;2:2:-1;;;;27:1;24;17:12;2:2;1337:52:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1337:52:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;1253:148:3;1412:13;1427;1444:52;1472:7;1481:6;1489;1444:27;:52::i;:::-;1411:85;;;;1511:8;1523:1;1511:13;:30;;;;-1:-1:-1;1528:13:3;;1511:30;1507:813;;;1580:14;;-1:-1:-1;1596:14:3;;-1:-1:-1;1507:813:3;;;1644:19;1666:57;1688:14;1704:8;1714;1666:21;:57::i;:::-;1644:79;;1760:14;1742;:32;1738:571;;1821:10;1803:14;:28;;1795:78;;;;-1:-1:-1;;;1795:78:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1914:14;;-1:-1:-1;1930:14:3;-1:-1:-1;1930:14:3;1738:571;;;1986:19;2008:57;2030:14;2046:8;2056;2008:21;:57::i;:::-;1986:79;;2109:14;2091;:32;;2084:40;;;;2169:10;2151:14;:28;;2143:78;;;;-1:-1:-1;;;2143:78:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2262:14;-1:-1:-1;2278:14:3;;-1:-1:-1;1738:571:3;1507:813;;944:1383;;;;;;;;;;;:::o;440:142:8:-;492:6;519;;;:30;;-1:-1:-1;;534:5:8;;;548:1;543;534:5;543:1;529:15;;;;;:20;519:30;511:63;;;;;-1:-1:-1;;;511:63:8;;;;;;;;;;;;;;;;;;;;;;;;;;;167:128;251:5;;;246:16;;;;238:49;;;;;-1:-1:-1;;;238:49:8;;;;;;;;;;;;;;;;;;;;;;;;;;;1320:390:7;1413:13;1428;1455:14;1474:26;1485:6;1493;1474:10;:26::i;:::-;1454:46;;;1512:13;1527;1559:32;1567:7;1576:6;1584;1559:7;:32::i;:::-;-1:-1:-1;;;;;1545:59:7;;:61;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1545:61:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1545:61:7;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1545:61:7;;;;;;;1511:95;;;;;-1:-1:-1;1511:95:7;;-1:-1:-1;;;;;;1640:16:7;;;;;;;:62;;1683:8;1693;1640:62;;;1660:8;1670;1640:62;1617:85;;;;-1:-1:-1;1320:390:7;-1:-1:-1;;;;;;;1320:390:7:o"},"methodIdentifiers":{"WAVAX()":"73b295c2","addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)":"e8e33700","addLiquidityAVAX(address,uint256,uint256,uint256,address,uint256)":"f91b3f72","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","removeLiquidityAVAX(address,uint256,uint256,uint256,address,uint256)":"33c6b725","removeLiquidityAVAXSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)":"73bc79cf","removeLiquidityAVAXWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"2c407024","removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"9fc27226","removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"2195995c","swapAVAXForExactTokens(uint256,address[],address,uint256)":"8a657e67","swapExactAVAXForTokens(uint256,address[],address,uint256)":"a2a1623d","swapExactAVAXForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)":"c57559dd","swapExactTokensForAVAX(uint256,uint256,address[],address,uint256)":"676528d1","swapExactTokensForAVAXSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)":"762b1562","swapExactTokensForTokens(uint256,uint256,address[],address,uint256)":"38ed1739","swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)":"5c11d795","swapTokensForExactAVAX(uint256,uint256,address[],address,uint256)":"7a42416a","swapTokensForExactTokens(uint256,uint256,address[],address,uint256)":"8803dbee"}},"metadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WAVAX\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"WAVAX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":\"amountAVAXMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidityAVAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAVAX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":\"amountAVAXMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityAVAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAVAX\",\"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\":\"amountAVAXMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityAVAXSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountAVAX\",\"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\":\"amountAVAXMin\",\"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\":\"removeLiquidityAVAXWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAVAX\",\"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\":\"amountAVAXMin\",\"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\":\"removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountAVAX\",\"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\":\"swapAVAXForExactTokens\",\"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\":\"swapExactAVAXForTokens\",\"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\":\"swapExactAVAXForTokensSupportingFeeOnTransferTokens\",\"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\":\"swapExactTokensForAVAX\",\"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\":\"swapExactTokensForAVAXSupportingFeeOnTransferTokens\",\"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\":\"swapTokensForExactAVAX\",\"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\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/PangolinRouter.sol\":\"PangolinRouter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-core/interfaces/IPangolinFactory.sol\":{\"keccak256\":\"0xb3fe51fccd8da7b99d23634d45ab5fc978496bc2763ae8436867c14d144a0b02\",\"urls\":[\"bzz-raw://076378342d9b196439c99464a818629babdb273daf7919b3a71e3b0531b4fb65\",\"dweb:/ipfs/QmPdVowLwaPrTu4yTNJdy1eBkKaAfH3uhU3Eu85ecmdNuC\"]},\"contracts/pangolin-core/interfaces/IPangolinPair.sol\":{\"keccak256\":\"0x0511ddea9c27b93469fea324ad29206830b559f6bfd16e9d033ba05edc37f1ab\",\"urls\":[\"bzz-raw://721a8c3595a7a7cc8ddf44a41a6db15b186e6e275990dc0e1790b61679b736a3\",\"dweb:/ipfs/QmU2UX4i5ZYtzv333x4FVjLQymC8rFmJ6Hsmi3Ka1HjFMu\"]},\"contracts/pangolin-lib/libraries/TransferHelper.sol\":{\"keccak256\":\"0xfc5b469642639405484afdba1d1ad1bdc70bd5cd4f01fe53c3be27c12a149f1f\",\"urls\":[\"bzz-raw://ad4c82e4d301a6bb7b9aac332299cb982dc8188d52942cc04796546dfb5cbd7a\",\"dweb:/ipfs/QmeeiUQrF2asciybNWEQyzeMsSkdavRABfZreMpCmKUpcG\"]},\"contracts/pangolin-periphery/PangolinRouter.sol\":{\"keccak256\":\"0x42986070ff2313b42c7b60633cc5713fd5d257b77e5e48c06cc62211df525b28\",\"urls\":[\"bzz-raw://f7eee43b1184a7a14e535689bf6753a1970fab60b47f485e0a1d94041f497f49\",\"dweb:/ipfs/QmcG7dAaG1Ed6vGQt2C3Tzy8Uzf1tyhi3my7XTmhXNCyPY\"]},\"contracts/pangolin-periphery/interfaces/IERC20.sol\":{\"keccak256\":\"0xa791b279660ee5eb66ebd4f23b539055d178ae24677f3a164567441ecfdcf73a\",\"urls\":[\"bzz-raw://06f36f585a8b82eb388ccccc4e8c483718a99a07f5f12d3217afc254ab139a68\",\"dweb:/ipfs/Qmedr3aAH6F3ZTgZJ3enoP92ZD8yNwiCStwtGknNXhiK8v\"]},\"contracts/pangolin-periphery/interfaces/IPangolinRouter.sol\":{\"keccak256\":\"0x4bd6d828ee059df5f36bff6a7bd558c81abe79fb339fc1518abc49b93f5641c3\",\"urls\":[\"bzz-raw://fe70738cdb2107c2df3029841012189f5fb32e59b33770acae4a730b555bf041\",\"dweb:/ipfs/QmXYK78en7WP55ej74M4iqoUmDJF3viXmhj7i8MuGJgbPU\"]},\"contracts/pangolin-periphery/interfaces/IWAVAX.sol\":{\"keccak256\":\"0x9c27dcddc6d751ed7a000b57889b7951c98779a0c5fcc16948f73dc5d28e041f\",\"urls\":[\"bzz-raw://16b0ac2fd8ad661e08e4150815115cff147b19926686ecc66cb4c98d2c788c34\",\"dweb:/ipfs/QmUKTJEzwtD6KkL3xWMruMqLjhRENL42NRLa7mTwSHPdGD\"]},\"contracts/pangolin-periphery/libraries/PangolinLibrary.sol\":{\"keccak256\":\"0x9b15b8a5b88c65084144245b3a6d2b4f7e38ddaf89686d4e2d4b949188d96da8\",\"urls\":[\"bzz-raw://f9a19db9fe3ba3d6f95e8464e29d7cb0577e565cd43ffc04fec7754f1c5c73c2\",\"dweb:/ipfs/Qme3b66F2ZKoSrTAv3CWxDZ3B93UnuuSHanBr7mi2mGvVf\"]},\"contracts/pangolin-periphery/libraries/SafeMath.sol\":{\"keccak256\":\"0xea7fc6aee5695afdfd601d83439471699b505547d7624aa7d1f787652835abad\",\"urls\":[\"bzz-raw://bffb0afb4c0bf854465d6ece9de33b06d18b34640e9a8ee5c4b95e095f14c9d4\",\"dweb:/ipfs/QmPGqwYDnCRSKSk9GYizHYuHC2M1sdirUEq97CrEUzNLGS\"]}},\"version\":1}"}},"contracts/pangolin-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":{"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"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.6.6+commit.6c089d02\"},\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-periphery/interfaces/IERC20.sol\":{\"keccak256\":\"0xa791b279660ee5eb66ebd4f23b539055d178ae24677f3a164567441ecfdcf73a\",\"urls\":[\"bzz-raw://06f36f585a8b82eb388ccccc4e8c483718a99a07f5f12d3217afc254ab139a68\",\"dweb:/ipfs/Qmedr3aAH6F3ZTgZJ3enoP92ZD8yNwiCStwtGknNXhiK8v\"]}},\"version\":1}"}},"contracts/pangolin-periphery/interfaces/IPangolinRouter.sol":{"IPangolinRouter":{"abi":[{"inputs":[],"name":"WAVAX","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":"amountAVAXMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityAVAX","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAVAX","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":"amountAVAXMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityAVAX","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAVAX","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":"amountAVAXMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityAVAXSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountAVAX","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":"amountAVAXMin","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":"removeLiquidityAVAXWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAVAX","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":"amountAVAXMin","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":"removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountAVAX","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":"swapAVAXForExactTokens","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":"swapExactAVAXForTokens","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":"swapExactAVAXForTokensSupportingFeeOnTransferTokens","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":"swapExactTokensForAVAX","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":"swapExactTokensForAVAXSupportingFeeOnTransferTokens","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":"swapTokensForExactAVAX","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":{"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"WAVAX()":"73b295c2","addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)":"e8e33700","addLiquidityAVAX(address,uint256,uint256,uint256,address,uint256)":"f91b3f72","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","removeLiquidityAVAX(address,uint256,uint256,uint256,address,uint256)":"33c6b725","removeLiquidityAVAXSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)":"73bc79cf","removeLiquidityAVAXWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"2c407024","removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"9fc27226","removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"2195995c","swapAVAXForExactTokens(uint256,address[],address,uint256)":"8a657e67","swapExactAVAXForTokens(uint256,address[],address,uint256)":"a2a1623d","swapExactAVAXForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)":"c57559dd","swapExactTokensForAVAX(uint256,uint256,address[],address,uint256)":"676528d1","swapExactTokensForAVAXSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)":"762b1562","swapExactTokensForTokens(uint256,uint256,address[],address,uint256)":"38ed1739","swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)":"5c11d795","swapTokensForExactAVAX(uint256,uint256,address[],address,uint256)":"7a42416a","swapTokensForExactTokens(uint256,uint256,address[],address,uint256)":"8803dbee"}},"metadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"WAVAX\",\"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\":\"amountAVAXMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidityAVAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAVAX\",\"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\":\"amountAVAXMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityAVAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAVAX\",\"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\":\"amountAVAXMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityAVAXSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountAVAX\",\"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\":\"amountAVAXMin\",\"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\":\"removeLiquidityAVAXWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAVAX\",\"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\":\"amountAVAXMin\",\"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\":\"removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountAVAX\",\"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\":\"swapAVAXForExactTokens\",\"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\":\"swapExactAVAXForTokens\",\"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\":\"swapExactAVAXForTokensSupportingFeeOnTransferTokens\",\"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\":\"swapExactTokensForAVAX\",\"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\":\"swapExactTokensForAVAXSupportingFeeOnTransferTokens\",\"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\":\"swapTokensForExactAVAX\",\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/interfaces/IPangolinRouter.sol\":\"IPangolinRouter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-periphery/interfaces/IPangolinRouter.sol\":{\"keccak256\":\"0x4bd6d828ee059df5f36bff6a7bd558c81abe79fb339fc1518abc49b93f5641c3\",\"urls\":[\"bzz-raw://fe70738cdb2107c2df3029841012189f5fb32e59b33770acae4a730b555bf041\",\"dweb:/ipfs/QmXYK78en7WP55ej74M4iqoUmDJF3viXmhj7i8MuGJgbPU\"]}},\"version\":1}"}},"contracts/pangolin-periphery/interfaces/IWAVAX.sol":{"IWAVAX":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":{"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address)":"70a08231","deposit()":"d0e30db0","transfer(address,uint256)":"a9059cbb","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/interfaces/IWAVAX.sol\":\"IWAVAX\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-periphery/interfaces/IWAVAX.sol\":{\"keccak256\":\"0x9c27dcddc6d751ed7a000b57889b7951c98779a0c5fcc16948f73dc5d28e041f\",\"urls\":[\"bzz-raw://16b0ac2fd8ad661e08e4150815115cff147b19926686ecc66cb4c98d2c788c34\",\"dweb:/ipfs/QmUKTJEzwtD6KkL3xWMruMqLjhRENL42NRLa7mTwSHPdGD\"]}},\"version\":1}"}},"contracts/pangolin-periphery/libraries/PangolinLibrary.sol":{"PangolinLibrary":{"abi":[],"evm":{"bytecode":{"linkReferences":{},"object":"60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ff7a5c5ccaa7526c708e89670eb393e455e4a85e5aec53b5dc5dacfdcd6ab3f464736f6c63430006060033","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 SELFDESTRUCT PUSH27 0x5C5CCAA7526C708E89670EB393E455E4A85E5AEC53B5DC5DACFDCD PUSH11 0xB3F464736F6C6343000606 STOP CALLER ","sourceMap":"181:4396:7:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24"},"deployedBytecode":{"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ff7a5c5ccaa7526c708e89670eb393e455e4a85e5aec53b5dc5dacfdcd6ab3f464736f6c63430006060033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT PUSH27 0x5C5CCAA7526C708E89670EB393E455E4A85E5AEC53B5DC5DACFDCD PUSH11 0xB3F464736F6C6343000606 STOP CALLER ","sourceMap":"181:4396:7:-:0;;;;;;12:1:-1;9;2:12"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/libraries/PangolinLibrary.sol\":\"PangolinLibrary\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-core/interfaces/IPangolinFactory.sol\":{\"keccak256\":\"0xb3fe51fccd8da7b99d23634d45ab5fc978496bc2763ae8436867c14d144a0b02\",\"urls\":[\"bzz-raw://076378342d9b196439c99464a818629babdb273daf7919b3a71e3b0531b4fb65\",\"dweb:/ipfs/QmPdVowLwaPrTu4yTNJdy1eBkKaAfH3uhU3Eu85ecmdNuC\"]},\"contracts/pangolin-core/interfaces/IPangolinPair.sol\":{\"keccak256\":\"0x0511ddea9c27b93469fea324ad29206830b559f6bfd16e9d033ba05edc37f1ab\",\"urls\":[\"bzz-raw://721a8c3595a7a7cc8ddf44a41a6db15b186e6e275990dc0e1790b61679b736a3\",\"dweb:/ipfs/QmU2UX4i5ZYtzv333x4FVjLQymC8rFmJ6Hsmi3Ka1HjFMu\"]},\"contracts/pangolin-periphery/libraries/PangolinLibrary.sol\":{\"keccak256\":\"0x9b15b8a5b88c65084144245b3a6d2b4f7e38ddaf89686d4e2d4b949188d96da8\",\"urls\":[\"bzz-raw://f9a19db9fe3ba3d6f95e8464e29d7cb0577e565cd43ffc04fec7754f1c5c73c2\",\"dweb:/ipfs/Qme3b66F2ZKoSrTAv3CWxDZ3B93UnuuSHanBr7mi2mGvVf\"]},\"contracts/pangolin-periphery/libraries/SafeMath.sol\":{\"keccak256\":\"0xea7fc6aee5695afdfd601d83439471699b505547d7624aa7d1f787652835abad\",\"urls\":[\"bzz-raw://bffb0afb4c0bf854465d6ece9de33b06d18b34640e9a8ee5c4b95e095f14c9d4\",\"dweb:/ipfs/QmPGqwYDnCRSKSk9GYizHYuHC2M1sdirUEq97CrEUzNLGS\"]}},\"version\":1}"}},"contracts/pangolin-periphery/libraries/SafeMath.sol":{"SafeMath":{"abi":[],"evm":{"bytecode":{"linkReferences":{},"object":"60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122026e6ff07d39eff9a84ffb629708d55a6adf0ba36be624d7c17fb253b4e5ee65564736f6c63430006060033","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 0x26 0xE6 SELFDESTRUCT SMOD 0xD3 SWAP15 SELFDESTRUCT SWAP11 DUP5 SELFDESTRUCT 0xB6 0x29 PUSH17 0x8D55A6ADF0BA36BE624D7C17FB253B4E5E 0xE6 SSTORE PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ","sourceMap":"143:442:8:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24"},"deployedBytecode":{"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122026e6ff07d39eff9a84ffb629708d55a6adf0ba36be624d7c17fb253b4e5ee65564736f6c63430006060033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x26 0xE6 SELFDESTRUCT SMOD 0xD3 SWAP15 SELFDESTRUCT SWAP11 DUP5 SELFDESTRUCT 0xB6 0x29 PUSH17 0x8D55A6ADF0BA36BE624D7C17FB253B4E5E 0xE6 SSTORE PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ","sourceMap":"143:442:8:-:0;;;;;;12:1:-1;9;2:12"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/libraries/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-periphery/libraries/SafeMath.sol\":{\"keccak256\":\"0xea7fc6aee5695afdfd601d83439471699b505547d7624aa7d1f787652835abad\",\"urls\":[\"bzz-raw://bffb0afb4c0bf854465d6ece9de33b06d18b34640e9a8ee5c4b95e095f14c9d4\",\"dweb:/ipfs/QmPGqwYDnCRSKSk9GYizHYuHC2M1sdirUEq97CrEUzNLGS\"]}},\"version\":1}"}},"contracts/pangolin-periphery/test/DeflatingERC20.sol":{"DeflatingERC20":{"abi":[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"","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":[{"internalType":"address","name":"","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":"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":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50604051610c41380380610c418339818101604052602081101561003357600080fd5b50516040514690806052610bef8239604080519182900360520182208282018252601483527f4465666c6174696e67205465737420546f6b656e0000000000000000000000006020938401528151808301835260018152603160f81b908401528151808401919091527ff89e31130e6fd3d87d62a1ac2770fba58bed5a06c47ce70fa97f8218b1b2743a818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061012633836001600160e01b0361012d16565b505061022d565b610146816000546101cf60201b6109251790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101779183906109256101cf821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610227576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b6109b38061023c6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461026b578063a9059cbb14610273578063d505accf1461029f578063dd62ed3e146102f2576100df565b80633644e5151461021757806370a082311461021f5780637ecebe0014610245576100df565b806323b872dd116100bd57806323b872dd146101bb57806330adf81f146101f1578063313ce567146101f9576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101a1575b600080fd5b6100ec610320565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018d6004803603604081101561017757600080fd5b506001600160a01b038135169060200135610359565b604080519115158252519081900360200190f35b6101a9610370565b60408051918252519081900360200190f35b61018d600480360360608110156101d157600080fd5b506001600160a01b03813581169160208101359091169060400135610376565b6101a9610410565b610201610434565b6040805160ff9092168252519081900360200190f35b6101a9610439565b6101a96004803603602081101561023557600080fd5b50356001600160a01b031661043f565b6101a96004803603602081101561025b57600080fd5b50356001600160a01b0316610451565b6100ec610463565b61018d6004803603604081101561028957600080fd5b506001600160a01b03813516906020013561049c565b6102f0600480360360e08110156102b557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356104a9565b005b6101a96004803603604081101561030857600080fd5b506001600160a01b03813581169160200135166106d1565b6040518060400160405280601481526020017f4465666c6174696e67205465737420546f6b656e00000000000000000000000081525081565b60006103663384846106ee565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103fb576001600160a01b03841660009081526002602090815260408083203384529091529020546103d6908363ffffffff61075016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6104068484846107a8565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020017f445454000000000000000000000000000000000000000000000000000000000081525081565b60006103663384846107a8565b428410156104fe576040805162461bcd60e51b815260206004820152600760248201527f4558504952454400000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015610634573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061066a5750886001600160a01b0316816001600160a01b0316145b6106bb576040805162461bcd60e51b815260206004820152601160248201527f494e56414c49445f5349474e4154555245000000000000000000000000000000604482015290519081900360640190fd5b6106c68989896106ee565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b8082038281111561036a576040805162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b606481046107b68482610887565b60006107c8838363ffffffff61075016565b6001600160a01b0386166000908152600160205260409020549091506107f4908263ffffffff61075016565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610829908263ffffffff61092516565b6001600160a01b0380861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b6001600160a01b0382166000908152600160205260409020546108b0908263ffffffff61075016565b6001600160a01b038316600090815260016020526040812091909155546108dd908263ffffffff61075016565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b8082018281101561036a576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea2646970667358221220450de02ef80c5c8099b1ef1aa4c517c43fce29630bce37e34ac19a90665fd2b364736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xC41 CODESIZE SUB DUP1 PUSH2 0xC41 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 MLOAD CHAINID SWAP1 DUP1 PUSH1 0x52 PUSH2 0xBEF DUP3 CODECOPY PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x52 ADD DUP3 KECCAK256 DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0x14 DUP4 MSTORE PUSH32 0x4465666C6174696E67205465737420546F6B656E000000000000000000000000 PUSH1 0x20 SWAP4 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xF89E31130E6FD3D87D62A1AC2770FBA58BED5A06C47CE70FA97F8218B1B2743A DUP2 DUP4 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x3 SSTORE POP PUSH2 0x126 CALLER DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH2 0x12D AND JUMP JUMPDEST POP POP PUSH2 0x22D JUMP JUMPDEST PUSH2 0x146 DUP2 PUSH1 0x0 SLOAD PUSH2 0x1CF PUSH1 0x20 SHL PUSH2 0x925 OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH2 0x177 SWAP2 DUP4 SWAP1 PUSH2 0x925 PUSH2 0x1CF DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x227 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9B3 DUP1 PUSH2 0x23C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F2 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x245 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1F9 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1A1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x359 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x370 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x376 JUMP JUMPDEST PUSH2 0x1A9 PUSH2 0x410 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x434 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x439 JUMP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x43F JUMP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x451 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x463 JUMP JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x49C JUMP JUMPDEST PUSH2 0x2F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x6D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4465666C6174696E67205465737420546F6B656E000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x366 CALLER DUP5 DUP5 PUSH2 0x6EE JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3FB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3D6 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x406 DUP5 DUP5 DUP5 PUSH2 0x7A8 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4454540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x366 CALLER DUP5 DUP5 PUSH2 0x7A8 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4FE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4558504952454400000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x66A JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x6BB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x6C6 DUP10 DUP10 DUP10 PUSH2 0x6EE JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x36A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP2 DIV PUSH2 0x7B6 DUP5 DUP3 PUSH2 0x887 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7C8 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x7F4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x829 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x925 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x8B0 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x8DD SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x36A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT 0xD 0xE0 0x2E 0xF8 0xC 0x5C DUP1 SWAP10 0xB1 0xEF BYTE LOG4 0xC5 OR 0xC4 EXTCODEHASH 0xCE 0x29 PUSH4 0xBCE37E3 0x4A 0xC1 SWAP11 SWAP1 PUSH7 0x5FD2B364736F6C PUSH4 0x43000606 STOP CALLER GASLIMIT 0x49 POP CALLDATACOPY BALANCE ORIGIN DIFFICULTY PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C75696E743235 CALLDATASIZE KECCAK256 PUSH4 0x6861696E 0x49 PUSH5 0x2C61646472 PUSH6 0x737320766572 PUSH10 0x6679696E67436F6E7472 PUSH2 0x6374 0x29 ","sourceMap":"66:3599:9:-:0;;;886:519;5:9:-1;2:2;;;27:1;24;17:12;2:2;886:519:9;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;886:519:9;1095:95;;993:9;;1095:95;;;;;;;;;;;;;;;;1225:4;;;;;;;;;;;;;;1260:10;;;;;;;;;;-1:-1:-1;;;1260:10:9;;;;1066:278;;;;;;;;;1209:22;1066:278;;;;1250:21;1066:278;;;;;;;;;;1324:4;1066:278;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1066:278:9;;;;;;;1042:313;;;;;1023:16;:332;-1:-1:-1;1366:31:9;1372:10;1384:12;-1:-1:-1;;;;;1366:5:9;:31;:::i;:::-;886:519;;66:3599;;1413:201;1486:22;1502:5;1486:11;;:15;;;;;;:22;;;;:::i;:::-;1472:11;:36;;;-1:-1:-1;;;;;1535:13:9;;;;:9;:13;;;;;;;;;:24;;1553:5;;1535:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1519:13:9;;;;;;:9;:13;;;;;;;;:40;;;;1575:31;;;;;;;1519:13;;;;1575:31;;;;;;;;;;1413:201;;:::o;167:128:8:-;251:5;;;246:16;;;;238:49;;;;;-1:-1:-1;;;238:49:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;167:128;;;;:::o;66:3599:9:-;;;;;;;"},"deployedBytecode":{"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461026b578063a9059cbb14610273578063d505accf1461029f578063dd62ed3e146102f2576100df565b80633644e5151461021757806370a082311461021f5780637ecebe0014610245576100df565b806323b872dd116100bd57806323b872dd146101bb57806330adf81f146101f1578063313ce567146101f9576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101a1575b600080fd5b6100ec610320565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018d6004803603604081101561017757600080fd5b506001600160a01b038135169060200135610359565b604080519115158252519081900360200190f35b6101a9610370565b60408051918252519081900360200190f35b61018d600480360360608110156101d157600080fd5b506001600160a01b03813581169160208101359091169060400135610376565b6101a9610410565b610201610434565b6040805160ff9092168252519081900360200190f35b6101a9610439565b6101a96004803603602081101561023557600080fd5b50356001600160a01b031661043f565b6101a96004803603602081101561025b57600080fd5b50356001600160a01b0316610451565b6100ec610463565b61018d6004803603604081101561028957600080fd5b506001600160a01b03813516906020013561049c565b6102f0600480360360e08110156102b557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356104a9565b005b6101a96004803603604081101561030857600080fd5b506001600160a01b03813581169160200135166106d1565b6040518060400160405280601481526020017f4465666c6174696e67205465737420546f6b656e00000000000000000000000081525081565b60006103663384846106ee565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103fb576001600160a01b03841660009081526002602090815260408083203384529091529020546103d6908363ffffffff61075016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6104068484846107a8565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020017f445454000000000000000000000000000000000000000000000000000000000081525081565b60006103663384846107a8565b428410156104fe576040805162461bcd60e51b815260206004820152600760248201527f4558504952454400000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015610634573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061066a5750886001600160a01b0316816001600160a01b0316145b6106bb576040805162461bcd60e51b815260206004820152601160248201527f494e56414c49445f5349474e4154555245000000000000000000000000000000604482015290519081900360640190fd5b6106c68989896106ee565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b8082038281111561036a576040805162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b606481046107b68482610887565b60006107c8838363ffffffff61075016565b6001600160a01b0386166000908152600160205260409020549091506107f4908263ffffffff61075016565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610829908263ffffffff61092516565b6001600160a01b0380861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b6001600160a01b0382166000908152600160205260409020546108b0908263ffffffff61075016565b6001600160a01b038316600090815260016020526040812091909155546108dd908263ffffffff61075016565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b8082018281101561036a576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea2646970667358221220450de02ef80c5c8099b1ef1aa4c517c43fce29630bce37e34ac19a90665fd2b364736f6c63430006060033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F2 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x245 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1F9 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1A1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x359 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x370 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x376 JUMP JUMPDEST PUSH2 0x1A9 PUSH2 0x410 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x434 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x439 JUMP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x43F JUMP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x451 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x463 JUMP JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x49C JUMP JUMPDEST PUSH2 0x2F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x6D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4465666C6174696E67205465737420546F6B656E000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x366 CALLER DUP5 DUP5 PUSH2 0x6EE JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3FB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3D6 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x406 DUP5 DUP5 DUP5 PUSH2 0x7A8 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4454540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x366 CALLER DUP5 DUP5 PUSH2 0x7A8 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4FE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4558504952454400000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x66A JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x6BB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x6C6 DUP10 DUP10 DUP10 PUSH2 0x6EE JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x36A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP2 DIV PUSH2 0x7B6 DUP5 DUP3 PUSH2 0x887 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7C8 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x7F4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x829 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x925 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x8B0 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x8DD SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x36A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT 0xD 0xE0 0x2E 0xF8 0xC 0x5C DUP1 SWAP10 0xB1 0xEF BYTE LOG4 0xC5 OR 0xC4 EXTCODEHASH 0xCE 0x29 PUSH4 0xBCE37E3 0x4A 0xC1 SWAP11 SWAP1 PUSH7 0x5FD2B364736F6C PUSH4 0x43000606 STOP CALLER ","sourceMap":"66:3599:9:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;66:3599:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;129:52:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;129:52:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2399:147;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2399:147:9;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;274:24;;;:::i;:::-;;;;;;;;;;;;;;;;2701:301;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2701:301:9;;;;;;;;;;;;;;;;;:::i;566:108::-;;;:::i;232:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;423:31;;;:::i;305:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;305:41:9;-1:-1:-1;;;;;305:41:9;;:::i;681:38::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;681:38:9;-1:-1:-1;;;;;681:38:9;;:::i;188:37::-;;;:::i;2554:139::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2554:139:9;;;;;;;;:::i;3010:652::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;3010:652:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;353:61;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;353:61:9;;;;;;;;;;:::i;129:52::-;;;;;;;;;;;;;;;;;;;:::o;2399:147::-;2463:4;2480:36;2489:10;2501:7;2510:5;2480:8;:36::i;:::-;-1:-1:-1;2534:4:9;2399:147;;;;;:::o;274:24::-;;;;:::o;2701:301::-;-1:-1:-1;;;;;2800:15:9;;2779:4;2800:15;;;:9;:15;;;;;;;;2816:10;2800:27;;;;;;;;-1:-1:-1;;2800:39:9;2796:140;;-1:-1:-1;;;;;2886:15:9;;;;;;:9;:15;;;;;;;;2902:10;2886:27;;;;;;;;:38;;2918:5;2886:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;2856:15:9;;;;;;:9;:15;;;;;;;;2872:10;2856:27;;;;;;;:68;2796:140;2946:26;2956:4;2962:2;2966:5;2946:9;:26::i;:::-;-1:-1:-1;2990:4:9;2701:301;;;;;:::o;566:108::-;608:66;566:108;:::o;232:35::-;265:2;232:35;:::o;423:31::-;;;;:::o;305:41::-;;;;;;;;;;;;;:::o;681:38::-;;;;;;;;;;;;;:::o;188:37::-;;;;;;;;;;;;;;;;;;;:::o;2554:139::-;2614:4;2631:32;2641:10;2653:2;2657:5;2631:9;:32::i;3010:652::-;3156:15;3144:8;:27;;3136:47;;;;;-1:-1:-1;;;3136:47:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3299:16;;-1:-1:-1;;;;;3395:13:9;;;3194:14;3395:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3344:77;;608:66;3344:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3344:77:9;;;;;3334:88;;;;;;3235:202;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3235:202:9;;;;;;3211:237;;;;;;;;;3486:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3194:14;;3395:15;3486:26;;;;;-1:-1:-1;;3486:26:9;;;;;;;;;;3395:15;3486:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3486:26:9;;-1:-1:-1;;3486:26:9;;;-1:-1:-1;;;;;;;3531:30:9;;;;;;:59;;;3585:5;-1:-1:-1;;;;;3565:25:9;:16;-1:-1:-1;;;;;3565:25:9;;3531:59;3523:89;;;;;-1:-1:-1;;;3523:89:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3623:31;3632:5;3639:7;3648:5;3623:8;:31::i;:::-;3010:652;;;;;;;;;:::o;353:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1839:169::-;-1:-1:-1;;;;;1920:16:9;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1969:31;;;;;;;;;;;;;;;;;1839:169;;;:::o;303:129:8:-;387:5;;;382:16;;;;374:50;;;;;-1:-1:-1;;;374:50:8;;;;;;;;;;;;;;;;;;;;;;;;;;;2016:375:9;2118:3;2110:11;;2132:23;2138:4;2110:11;2132:5;:23::i;:::-;2166:19;2188:21;:5;2198:10;2188:21;:9;:21;:::i;:::-;-1:-1:-1;;;;;2238:15:9;;;;;;:9;:15;;;;;;2166:43;;-1:-1:-1;2238:35:9;;2166:43;2238:35;:19;:35;:::i;:::-;-1:-1:-1;;;;;2220:15:9;;;;;;;:9;:15;;;;;;:53;;;;2300:13;;;;;;;:33;;2318:14;2300:33;:17;:33;:::i;:::-;-1:-1:-1;;;;;2284:13:9;;;;;;;:9;:13;;;;;;;;;:49;;;;2349:34;;;;;;;2284:13;;2349:34;;;;;;;;;;;;;2016:375;;;;;:::o;1622:209::-;-1:-1:-1;;;;;1701:15:9;;;;;;:9;:15;;;;;;:26;;1721:5;1701:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;1683:15:9;;;;;;:9;:15;;;;;:44;;;;1752:11;:22;;1768:5;1752:22;:15;:22;:::i;:::-;1738:11;:36;;;1790:33;;;;;;;;-1:-1:-1;;;;;1790:33:9;;;;;;;;;;;;;1622:209;;:::o;167:128:8:-;251:5;;;246:16;;;;238:49;;;;;-1:-1:-1;;;238:49:8;;;;;;;;;;;;;;;;;;;;;;;;;;"},"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.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"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\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/test/DeflatingERC20.sol\":\"DeflatingERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-periphery/libraries/SafeMath.sol\":{\"keccak256\":\"0xea7fc6aee5695afdfd601d83439471699b505547d7624aa7d1f787652835abad\",\"urls\":[\"bzz-raw://bffb0afb4c0bf854465d6ece9de33b06d18b34640e9a8ee5c4b95e095f14c9d4\",\"dweb:/ipfs/QmPGqwYDnCRSKSk9GYizHYuHC2M1sdirUEq97CrEUzNLGS\"]},\"contracts/pangolin-periphery/test/DeflatingERC20.sol\":{\"keccak256\":\"0x87865ca6b6c932740ec3abb4ac599f2cc67037941fa27c545d31b09d2976a07d\",\"urls\":[\"bzz-raw://e121e0739659fe06267c870758750a381a465a369073d3c69a7232e14702fe27\",\"dweb:/ipfs/QmdPityKEDGaZFRMprWQFgQ8EWkb9sY4XkjeZp1ck8nfTz\"]}},\"version\":1}"}},"contracts/pangolin-periphery/test/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"","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":[{"internalType":"address","name":"","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":"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":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50604051610b6b380380610b6b8339818101604052602081101561003357600080fd5b50516040514690806052610b198239604080519182900360520182208282018252600a8352692a32b9ba102a37b5b2b760b11b6020938401528151808301835260018152603160f81b908401528151808401919091527f81e8ad438398ab0d4a2a7ecb159490c091bb27c67ace5181f70084e30fadaea2818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061011333836001600160e01b0361011a16565b505061021a565b610133816000546101bc60201b6108621790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101649183906108626101bc821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610214576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b6108f0806102296000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461026b578063a9059cbb14610273578063d505accf1461029f578063dd62ed3e146102f2576100df565b80633644e5151461021757806370a082311461021f5780637ecebe0014610245576100df565b806323b872dd116100bd57806323b872dd146101bb57806330adf81f146101f1578063313ce567146101f9576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101a1575b600080fd5b6100ec610320565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018d6004803603604081101561017757600080fd5b506001600160a01b038135169060200135610359565b604080519115158252519081900360200190f35b6101a9610370565b60408051918252519081900360200190f35b61018d600480360360608110156101d157600080fd5b506001600160a01b03813581169160208101359091169060400135610376565b6101a9610410565b610201610434565b6040805160ff9092168252519081900360200190f35b6101a9610439565b6101a96004803603602081101561023557600080fd5b50356001600160a01b031661043f565b6101a96004803603602081101561025b57600080fd5b50356001600160a01b0316610451565b6100ec610463565b61018d6004803603604081101561028957600080fd5b506001600160a01b03813516906020013561049c565b6102f0600480360360e08110156102b557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356104a9565b005b6101a96004803603604081101561030857600080fd5b506001600160a01b03813581169160200135166106d1565b6040518060400160405280600a81526020017f5465737420546f6b656e0000000000000000000000000000000000000000000081525081565b60006103663384846106ee565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103fb576001600160a01b03841660009081526002602090815260408083203384529091529020546103d6908363ffffffff61075016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6104068484846107a8565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600281526020017f545400000000000000000000000000000000000000000000000000000000000081525081565b60006103663384846107a8565b428410156104fe576040805162461bcd60e51b815260206004820152600760248201527f4558504952454400000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015610634573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061066a5750886001600160a01b0316816001600160a01b0316145b6106bb576040805162461bcd60e51b815260206004820152601160248201527f494e56414c49445f5349474e4154555245000000000000000000000000000000604482015290519081900360640190fd5b6106c68989896106ee565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b8082038281111561036a576040805162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6001600160a01b0383166000908152600160205260409020546107d1908263ffffffff61075016565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610806908263ffffffff61086216565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b8082018281101561036a576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea2646970667358221220c0433f5f2e7eb7d795618f0600ad3ab9ed7200a64f480819bade37d02722392964736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xB6B CODESIZE SUB DUP1 PUSH2 0xB6B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 MLOAD CHAINID SWAP1 DUP1 PUSH1 0x52 PUSH2 0xB19 DUP3 CODECOPY PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x52 ADD DUP3 KECCAK256 DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0xA DUP4 MSTORE PUSH10 0x2A32B9BA102A37B5B2B7 PUSH1 0xB1 SHL PUSH1 0x20 SWAP4 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x81E8AD438398AB0D4A2A7ECB159490C091BB27C67ACE5181F70084E30FADAEA2 DUP2 DUP4 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x3 SSTORE POP PUSH2 0x113 CALLER DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH2 0x11A AND JUMP JUMPDEST POP POP PUSH2 0x21A JUMP JUMPDEST PUSH2 0x133 DUP2 PUSH1 0x0 SLOAD PUSH2 0x1BC PUSH1 0x20 SHL PUSH2 0x862 OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH2 0x164 SWAP2 DUP4 SWAP1 PUSH2 0x862 PUSH2 0x1BC DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x214 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8F0 DUP1 PUSH2 0x229 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F2 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x245 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1F9 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1A1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x359 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x370 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x376 JUMP JUMPDEST PUSH2 0x1A9 PUSH2 0x410 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x434 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x439 JUMP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x43F JUMP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x451 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x463 JUMP JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x49C JUMP JUMPDEST PUSH2 0x2F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x6D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5465737420546F6B656E00000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x366 CALLER DUP5 DUP5 PUSH2 0x6EE JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3FB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3D6 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x406 DUP5 DUP5 DUP5 PUSH2 0x7A8 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5454000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x366 CALLER DUP5 DUP5 PUSH2 0x7A8 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4FE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4558504952454400000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x66A JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x6BB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x6C6 DUP10 DUP10 DUP10 PUSH2 0x6EE JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x36A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7D1 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x806 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x862 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x36A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 NUMBER EXTCODEHASH 0x5F 0x2E PUSH31 0xB7D795618F0600AD3AB9ED7200A64F480819BADE37D02722392964736F6C63 NUMBER STOP MOD MOD STOP CALLER GASLIMIT 0x49 POP CALLDATACOPY BALANCE ORIGIN DIFFICULTY PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C75696E743235 CALLDATASIZE KECCAK256 PUSH4 0x6861696E 0x49 PUSH5 0x2C61646472 PUSH6 0x737320766572 PUSH10 0x6679696E67436F6E7472 PUSH2 0x6374 0x29 ","sourceMap":"66:3424:10:-:0;;;866:519;5:9:-1;2:2;;;27:1;24;17:12;2:2;866:519:10;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;866:519:10;1075:95;;973:9;;1075:95;;;;;;;;;;;;;;;;1205:4;;;;;;;;-1:-1:-1;;;1205:4:10;;;;;1240:10;;;;;;;;;;-1:-1:-1;;;1240:10:10;;;;1046:278;;;;;;;;;1189:22;1046:278;;;;1230:21;1046:278;;;;;;;;;;1304:4;1046:278;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1046:278:10;;;;;;;1022:313;;;;;1003:16;:332;-1:-1:-1;1346:31:10;1352:10;1364:12;-1:-1:-1;;;;;1346:5:10;:31;:::i;:::-;866:519;;66:3424;;1393:201;1466:22;1482:5;1466:11;;:15;;;;;;:22;;;;:::i;:::-;1452:11;:36;;;-1:-1:-1;;;;;1515:13:10;;;;:9;:13;;;;;;;;;:24;;1533:5;;1515:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1499:13:10;;;;;;:9;:13;;;;;;;;:40;;;;1555:31;;;;;;;1499:13;;;;1555:31;;;;;;;;;;1393:201;;:::o;167:128:8:-;251:5;;;246:16;;;;238:49;;;;;-1:-1:-1;;;238:49:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;167:128;;;;:::o;66:3424:10:-;;;;;;;"},"deployedBytecode":{"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461026b578063a9059cbb14610273578063d505accf1461029f578063dd62ed3e146102f2576100df565b80633644e5151461021757806370a082311461021f5780637ecebe0014610245576100df565b806323b872dd116100bd57806323b872dd146101bb57806330adf81f146101f1578063313ce567146101f9576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101a1575b600080fd5b6100ec610320565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018d6004803603604081101561017757600080fd5b506001600160a01b038135169060200135610359565b604080519115158252519081900360200190f35b6101a9610370565b60408051918252519081900360200190f35b61018d600480360360608110156101d157600080fd5b506001600160a01b03813581169160208101359091169060400135610376565b6101a9610410565b610201610434565b6040805160ff9092168252519081900360200190f35b6101a9610439565b6101a96004803603602081101561023557600080fd5b50356001600160a01b031661043f565b6101a96004803603602081101561025b57600080fd5b50356001600160a01b0316610451565b6100ec610463565b61018d6004803603604081101561028957600080fd5b506001600160a01b03813516906020013561049c565b6102f0600480360360e08110156102b557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356104a9565b005b6101a96004803603604081101561030857600080fd5b506001600160a01b03813581169160200135166106d1565b6040518060400160405280600a81526020017f5465737420546f6b656e0000000000000000000000000000000000000000000081525081565b60006103663384846106ee565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103fb576001600160a01b03841660009081526002602090815260408083203384529091529020546103d6908363ffffffff61075016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6104068484846107a8565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600281526020017f545400000000000000000000000000000000000000000000000000000000000081525081565b60006103663384846107a8565b428410156104fe576040805162461bcd60e51b815260206004820152600760248201527f4558504952454400000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015610634573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061066a5750886001600160a01b0316816001600160a01b0316145b6106bb576040805162461bcd60e51b815260206004820152601160248201527f494e56414c49445f5349474e4154555245000000000000000000000000000000604482015290519081900360640190fd5b6106c68989896106ee565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b8082038281111561036a576040805162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6001600160a01b0383166000908152600160205260409020546107d1908263ffffffff61075016565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610806908263ffffffff61086216565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b8082018281101561036a576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea2646970667358221220c0433f5f2e7eb7d795618f0600ad3ab9ed7200a64f480819bade37d02722392964736f6c63430006060033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F2 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x245 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1F9 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1A1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x359 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x370 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x376 JUMP JUMPDEST PUSH2 0x1A9 PUSH2 0x410 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x434 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x439 JUMP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x43F JUMP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x451 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x463 JUMP JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x49C JUMP JUMPDEST PUSH2 0x2F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x6D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5465737420546F6B656E00000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x366 CALLER DUP5 DUP5 PUSH2 0x6EE JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT EQ PUSH2 0x3FB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x3D6 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x406 DUP5 DUP5 DUP5 PUSH2 0x7A8 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5454000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x366 CALLER DUP5 DUP5 PUSH2 0x7A8 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4FE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4558504952454400000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH1 0x1F NOT DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x66A JUMPI POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x6BB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x6C6 DUP10 DUP10 DUP10 PUSH2 0x6EE JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x36A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x7D1 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x750 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x806 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x862 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x36A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 NUMBER EXTCODEHASH 0x5F 0x2E PUSH31 0xB7D795618F0600AD3AB9ED7200A64F480819BADE37D02722392964736F6C63 NUMBER STOP MOD MOD STOP CALLER ","sourceMap":"66:3424:10:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;66:3424:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;120:42:10;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;120:42:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2224:147;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2224:147:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;254:24;;;:::i;:::-;;;;;;;;;;;;;;;;2526:301;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2526:301:10;;;;;;;;;;;;;;;;;:::i;546:108::-;;;:::i;212:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;403:31;;;:::i;285:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;285:41:10;-1:-1:-1;;;;;285:41:10;;:::i;661:38::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;661:38:10;-1:-1:-1;;;;;661:38:10;;:::i;169:36::-;;;:::i;2379:139::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2379:139:10;;;;;;;;:::i;2835:652::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;2835:652:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;333:61;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;333:61:10;;;;;;;;;;:::i;120:42::-;;;;;;;;;;;;;;;;;;;:::o;2224:147::-;2288:4;2305:36;2314:10;2326:7;2335:5;2305:8;:36::i;:::-;-1:-1:-1;2359:4:10;2224:147;;;;;:::o;254:24::-;;;;:::o;2526:301::-;-1:-1:-1;;;;;2625:15:10;;2604:4;2625:15;;;:9;:15;;;;;;;;2641:10;2625:27;;;;;;;;-1:-1:-1;;2625:39:10;2621:140;;-1:-1:-1;;;;;2711:15:10;;;;;;:9;:15;;;;;;;;2727:10;2711:27;;;;;;;;:38;;2743:5;2711:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;2681:15:10;;;;;;:9;:15;;;;;;;;2697:10;2681:27;;;;;;;:68;2621:140;2771:26;2781:4;2787:2;2791:5;2771:9;:26::i;:::-;-1:-1:-1;2815:4:10;2526:301;;;;;:::o;546:108::-;588:66;546:108;:::o;212:35::-;245:2;212:35;:::o;403:31::-;;;;:::o;285:41::-;;;;;;;;;;;;;:::o;661:38::-;;;;;;;;;;;;;:::o;169:36::-;;;;;;;;;;;;;;;;;;;:::o;2379:139::-;2439:4;2456:32;2466:10;2478:2;2482:5;2456:9;:32::i;2835:652::-;2981:15;2969:8;:27;;2961:47;;;;;-1:-1:-1;;;2961:47:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:16;;-1:-1:-1;;;;;3220:13:10;;;3019:14;3220:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3169:77;;588:66;3169:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3169:77:10;;;;;3159:88;;;;;;3060:202;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3060:202:10;;;;;;3036:237;;;;;;;;;3311:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3019:14;;3220:15;3311:26;;;;;-1:-1:-1;;3311:26:10;;;;;;;;;;3220:15;3311:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3311:26:10;;-1:-1:-1;;3311:26:10;;;-1:-1:-1;;;;;;;3356:30:10;;;;;;:59;;;3410:5;-1:-1:-1;;;;;3390:25:10;:16;-1:-1:-1;;;;;3390:25:10;;3356:59;3348:89;;;;;-1:-1:-1;;;3348:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3448:31;3457:5;3464:7;3473:5;3448:8;:31::i;:::-;2835:652;;;;;;;;;:::o;333:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1819:169::-;-1:-1:-1;;;;;1900:16:10;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1949:31;;;;;;;;;;;;;;;;;1819:169;;;:::o;303:129:8:-;387:5;;;382:16;;;;374:50;;;;;-1:-1:-1;;;374:50:8;;;;;;;;;;;;;;;;;;;;;;;;;;;1996:220:10;-1:-1:-1;;;;;2090:15:10;;;;;;:9;:15;;;;;;:26;;2110:5;2090:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;2072:15:10;;;;;;;:9;:15;;;;;;:44;;;;2143:13;;;;;;;:24;;2161:5;2143:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;2127:13:10;;;;;;;:9;:13;;;;;;;;;:40;;;;2183:25;;;;;;;2127:13;;2183:25;;;;;;;;;;;;;1996:220;;;:::o;167:128:8:-;251:5;;;246:16;;;;238:49;;;;;-1:-1:-1;;;238:49:8;;;;;;;;;;;;;;;;;;;;;;;;;;"},"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.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"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\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/test/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-periphery/libraries/SafeMath.sol\":{\"keccak256\":\"0xea7fc6aee5695afdfd601d83439471699b505547d7624aa7d1f787652835abad\",\"urls\":[\"bzz-raw://bffb0afb4c0bf854465d6ece9de33b06d18b34640e9a8ee5c4b95e095f14c9d4\",\"dweb:/ipfs/QmPGqwYDnCRSKSk9GYizHYuHC2M1sdirUEq97CrEUzNLGS\"]},\"contracts/pangolin-periphery/test/ERC20.sol\":{\"keccak256\":\"0x85fd58f31535d39700c0ac96efb25112be4d6e46b49dfd40276459b344ff6a6a\",\"urls\":[\"bzz-raw://2a2742237e63ad1a0842fc6540c1eb578366ce0289c8a12ea789a99ce989082a\",\"dweb:/ipfs/Qmc6SqwuBHyJfNmiSTanEQN77YUxSwjk7hTN5AzpmkErh4\"]}},\"version\":1}"}},"contracts/pangolin-periphery/test/RouterEventEmitter.sol":{"RouterEventEmitter":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"Amounts","type":"event"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"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":"swapAVAXForExactTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"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":"swapExactAVAXForTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"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":"swapExactTokensForAVAX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"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":"swapTokensForExactAVAX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"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":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50610d12806100206000396000f3fe6080604052600436106100695760003560e01c8063375734d911610043578063375734d91461026f57806342011206146103175780638a3a5fd5146103ab57610070565b80630fb5112d146100755780631b48304f1461011f57806322b58410146101c757610070565b3661007057005b600080fd5b34801561008157600080fd5b5061011d600480360360c081101561009857600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100cf57600080fd5b8201836020820111156100e157600080fd5b8035906020019184602083028401116401000000008311171561010357600080fd5b91935091506001600160a01b03813516906020013561043f565b005b34801561012b57600080fd5b5061011d600480360360c081101561014257600080fd5b6001600160a01b03823516916020810135916040820135919081019060808101606082013564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460208302840111640100000000831117156101ad57600080fd5b91935091506001600160a01b0381351690602001356106ba565b3480156101d357600080fd5b5061011d600480360360c08110156101ea57600080fd5b6001600160a01b03823516916020810135916040820135919081019060808101606082013564010000000081111561022157600080fd5b82018360208201111561023357600080fd5b8035906020019184602083028401116401000000008311171561025557600080fd5b91935091506001600160a01b0381351690602001356107a3565b34801561027b57600080fd5b5061011d600480360360c081101561029257600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156102c957600080fd5b8201836020820111156102db57600080fd5b803590602001918460208302840111640100000000831117156102fd57600080fd5b91935091506001600160a01b03813516906020013561088c565b61011d600480360360a081101561032d57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561035d57600080fd5b82018360208201111561036f57600080fd5b8035906020019184602083028401116401000000008311171561039157600080fd5b91935091506001600160a01b038135169060200135610975565b61011d600480360360a08110156103c157600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103f157600080fd5b82018360208201111561040357600080fd5b8035906020019184602083028401116401000000008311171561042557600080fd5b91935091506001600160a01b038135169060200135610be7565b60006060886001600160a01b0316637a42416a60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b602083106105295780518252601f19909201916020918201910161050a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610589576040519150601f19603f3d011682016040523d82523d6000602084013e61058e565b606091505b50915091508161059a57fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156105d057600080fd5b81019080805160405193929190846401000000008211156105f057600080fd5b90830190602082018581111561060557600080fd5b825186602082028301116401000000008211171561062257600080fd5b82525081516020918201928201910280838360005b8381101561064f578181015183820152602001610637565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561069c578181015183820152602001610684565b505050509050019250505060405180910390a1505050505050505050565b60006060886001600160a01b031663676528d160e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051808280519060200190808383602083106105295780518252601f19909201916020918201910161050a565b60006060886001600160a01b0316638803dbee60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051808280519060200190808383602083106105295780518252601f19909201916020918201910161050a565b60006060886001600160a01b03166338ed173960e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051808280519060200190808383602083106105295780518252601f19909201916020918201910161050a565b60006060876001600160a01b0316638a657e6760e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b60208310610a575780518252601f199092019160209182019101610a38565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610ab7576040519150601f19603f3d011682016040523d82523d6000602084013e610abc565b606091505b509150915081610ac857fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b3818060200190516020811015610afe57600080fd5b8101908080516040519392919084640100000000821115610b1e57600080fd5b908301906020820185811115610b3357600080fd5b8251866020820283011164010000000082111715610b5057600080fd5b82525081516020918201928201910280838360005b83811015610b7d578181015183820152602001610b65565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610bca578181015183820152602001610bb2565b505050509050019250505060405180910390a15050505050505050565b60006060876001600160a01b031663a2a1623d60e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f909201601f199081169094018281039094018252928352602080820180516001600160e01b03167fffffffff00000000000000000000000000000000000000000000000000000000909d169c909c178c5292518151919b909a508a995097509550859450879350869250508310610a575780518252601f199092019160209182019101610a3856fea2646970667358221220d8e1511e26c48146b1334f08361cc91b5330bd5115517417cf83f3182ba9bcf064736f6c63430006060033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD12 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x69 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x375734D9 GT PUSH2 0x43 JUMPI DUP1 PUSH4 0x375734D9 EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x42011206 EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0x8A3A5FD5 EQ PUSH2 0x3AB JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0xFB5112D EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x1B48304F EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x22B58410 EQ PUSH2 0x1C7 JUMPI PUSH2 0x70 JUMP JUMPDEST CALLDATASIZE PUSH2 0x70 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x103 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x43F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x142 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x18B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x6BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x7A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x88C JUMP JUMPDEST PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x36F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x975 JUMP JUMPDEST PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x3C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x403 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x425 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xBE7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7A42416A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x529 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x50A JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x589 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x58E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x59A JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0x5F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x605 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x622 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x64F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x637 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x69C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x684 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x676528D1 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x529 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x50A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8803DBEE PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x529 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x50A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38ED1739 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x529 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x50A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8A657E67 PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xA57 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xAB7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xABC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xAC8 JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xAFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0xB1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0xB33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xB50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB7D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xB65 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xBCA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xBB2 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA2A1623D PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND SWAP1 SWAP5 ADD DUP3 DUP2 SUB SWAP1 SWAP5 ADD DUP3 MSTORE SWAP3 DUP4 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP14 AND SWAP13 SWAP1 SWAP13 OR DUP13 MSTORE SWAP3 MLOAD DUP2 MLOAD SWAP2 SWAP12 SWAP1 SWAP11 POP DUP11 SWAP10 POP SWAP8 POP SWAP6 POP DUP6 SWAP5 POP DUP8 SWAP4 POP DUP7 SWAP3 POP POP DUP4 LT PUSH2 0xA57 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA38 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD8 0xE1 MLOAD 0x1E 0x26 0xC4 DUP2 CHAINID 0xB1 CALLER 0x4F ADDMOD CALLDATASIZE SHR 0xC9 SHL MSTORE8 ADDRESS 0xBD MLOAD ISZERO MLOAD PUSH21 0x17CF83F3182BA9BCF064736F6C6343000606003300 ","sourceMap":"74:3199:11:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;74:3199:11;;;;;;;"},"deployedBytecode":{"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100695760003560e01c8063375734d911610043578063375734d91461026f57806342011206146103175780638a3a5fd5146103ab57610070565b80630fb5112d146100755780631b48304f1461011f57806322b58410146101c757610070565b3661007057005b600080fd5b34801561008157600080fd5b5061011d600480360360c081101561009857600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100cf57600080fd5b8201836020820111156100e157600080fd5b8035906020019184602083028401116401000000008311171561010357600080fd5b91935091506001600160a01b03813516906020013561043f565b005b34801561012b57600080fd5b5061011d600480360360c081101561014257600080fd5b6001600160a01b03823516916020810135916040820135919081019060808101606082013564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460208302840111640100000000831117156101ad57600080fd5b91935091506001600160a01b0381351690602001356106ba565b3480156101d357600080fd5b5061011d600480360360c08110156101ea57600080fd5b6001600160a01b03823516916020810135916040820135919081019060808101606082013564010000000081111561022157600080fd5b82018360208201111561023357600080fd5b8035906020019184602083028401116401000000008311171561025557600080fd5b91935091506001600160a01b0381351690602001356107a3565b34801561027b57600080fd5b5061011d600480360360c081101561029257600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156102c957600080fd5b8201836020820111156102db57600080fd5b803590602001918460208302840111640100000000831117156102fd57600080fd5b91935091506001600160a01b03813516906020013561088c565b61011d600480360360a081101561032d57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561035d57600080fd5b82018360208201111561036f57600080fd5b8035906020019184602083028401116401000000008311171561039157600080fd5b91935091506001600160a01b038135169060200135610975565b61011d600480360360a08110156103c157600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103f157600080fd5b82018360208201111561040357600080fd5b8035906020019184602083028401116401000000008311171561042557600080fd5b91935091506001600160a01b038135169060200135610be7565b60006060886001600160a01b0316637a42416a60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b602083106105295780518252601f19909201916020918201910161050a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610589576040519150601f19603f3d011682016040523d82523d6000602084013e61058e565b606091505b50915091508161059a57fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156105d057600080fd5b81019080805160405193929190846401000000008211156105f057600080fd5b90830190602082018581111561060557600080fd5b825186602082028301116401000000008211171561062257600080fd5b82525081516020918201928201910280838360005b8381101561064f578181015183820152602001610637565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561069c578181015183820152602001610684565b505050509050019250505060405180910390a1505050505050505050565b60006060886001600160a01b031663676528d160e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051808280519060200190808383602083106105295780518252601f19909201916020918201910161050a565b60006060886001600160a01b0316638803dbee60e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051808280519060200190808383602083106105295780518252601f19909201916020918201910161050a565b60006060886001600160a01b03166338ed173960e01b8989898989896040516024018087815260200186815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051808280519060200190808383602083106105295780518252601f19909201916020918201910161050a565b60006060876001600160a01b0316638a657e6760e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b031681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b60208310610a575780518252601f199092019160209182019101610a38565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610ab7576040519150601f19603f3d011682016040523d82523d6000602084013e610abc565b606091505b509150915081610ac857fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b3818060200190516020811015610afe57600080fd5b8101908080516040519392919084640100000000821115610b1e57600080fd5b908301906020820185811115610b3357600080fd5b8251866020820283011164010000000082111715610b5057600080fd5b82525081516020918201928201910280838360005b83811015610b7d578181015183820152602001610b65565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610bca578181015183820152602001610bb2565b505050509050019250505060405180910390a15050505050505050565b60006060876001600160a01b031663a2a1623d60e01b88888888886040516024018086815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f909201601f199081169094018281039094018252928352602080820180516001600160e01b03167fffffffff00000000000000000000000000000000000000000000000000000000909d169c909c178c5292518151919b909a508a995097509550859450879350869250508310610a575780518252601f199092019160209182019101610a3856fea2646970667358221220d8e1511e26c48146b1334f08361cc91b5330bd5115517417cf83f3182ba9bcf064736f6c63430006060033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x69 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x375734D9 GT PUSH2 0x43 JUMPI DUP1 PUSH4 0x375734D9 EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x42011206 EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0x8A3A5FD5 EQ PUSH2 0x3AB JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0xFB5112D EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x1B48304F EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x22B58410 EQ PUSH2 0x1C7 JUMPI PUSH2 0x70 JUMP JUMPDEST CALLDATASIZE PUSH2 0x70 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x103 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x43F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x142 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x18B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x6BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x7A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x88C JUMP JUMPDEST PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x36F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x975 JUMP JUMPDEST PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x3C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x403 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x425 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xBE7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7A42416A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x529 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x50A JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x589 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x58E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x59A JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0x5F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x605 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x622 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x64F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x637 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x69C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x684 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x676528D1 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x529 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x50A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8803DBEE PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x529 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x50A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38ED1739 PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x529 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x50A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8A657E67 PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xA57 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xAB7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xABC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xAC8 JUMPI INVALID JUMPDEST PUSH32 0x4CC17991E3610E3400E74A8306AA421DAAEE1E3446FA22B490604610999E10B3 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xAFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0xB1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0xB33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xB50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 DUP3 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB7D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xB65 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xBCA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xBB2 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA2A1623D PUSH1 0xE0 SHL DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP7 DUP7 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND SWAP1 SWAP5 ADD DUP3 DUP2 SUB SWAP1 SWAP5 ADD DUP3 MSTORE SWAP3 DUP4 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP14 AND SWAP13 SWAP1 SWAP13 OR DUP13 MSTORE SWAP3 MLOAD DUP2 MLOAD SWAP2 SWAP12 SWAP1 SWAP11 POP DUP11 SWAP10 POP SWAP8 POP SWAP6 POP DUP6 SWAP5 POP DUP8 SWAP4 POP DUP7 SWAP3 POP POP DUP4 LT PUSH2 0xA57 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA38 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD8 0xE1 MLOAD 0x1E 0x26 0xC4 DUP2 CHAINID 0xB1 CALLER 0x4F ADDMOD CALLDATASIZE SHR 0xC9 SHL MSTORE8 ADDRESS 0xBD MLOAD ISZERO MLOAD PUSH21 0x17CF83F3182BA9BCF064736F6C6343000606003300 ","sourceMap":"74:3199:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1738:516:11;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1738:516:11;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;1738:516:11;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;1738:516:11;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1738:516:11;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1738:516:11;;-1:-1:-1;1738:516:11;-1:-1:-1;;;;;;1738:516:11;;;;;;;;:::i;:::-;;2262;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2262:516:11;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;2262:516:11;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;2262:516:11;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2262:516:11;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2262:516:11;;-1:-1:-1;2262:516:11;-1:-1:-1;;;;;;2262:516:11;;;;;;;;:::i;712:520::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;712:520:11;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;712:520:11;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;712:520:11;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;712:520:11;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;712:520:11;;-1:-1:-1;712:520:11;-1:-1:-1;;;;;;712:520:11;;;;;;;;:::i;184:::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;184:520:11;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;184:520:11;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;184:520:11;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;184:520:11;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;184:520:11;;-1:-1:-1;184:520:11;-1:-1:-1;;;;;;184:520:11;;;;;;;;:::i;2786:484::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;2786:484:11;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;2786:484:11;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2786:484:11;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2786:484:11;;-1:-1:-1;2786:484:11;-1:-1:-1;;;;;;2786:484:11;;;;;;;;:::i;1240:490::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;1240:490:11;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;1240:490:11;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1240:490:11;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1240:490:11;;-1:-1:-1;1240:490:11;-1:-1:-1;;;;;;1240:490:11;;;;;;;;:::i;1738:516::-;1954:12;1968:23;1995:6;-1:-1:-1;;;;;1995:19:11;2052:55;;;2109:9;2120:11;2133:4;;2139:2;2143:8;2015:147;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2015:147:11;-1:-1:-1;;;;;2015:147:11;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2015:147:11;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2015:147:11;;;;-1:-1:-1;;;;;2015:147:11;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2015:147:11;1995:168;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1995:168:11;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1953:210:11;;;;2181:7;2174:15;;;;2205:41;2224:10;2213:32;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2213:32:11;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;2213:32:11;;421:4:-1;412:14;;;;2213:32:11;;;;;412:14:-1;2213:32:11;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2213:32:11;;;;;;;;;;;2205:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2205:41:11;;;;;;;;;;;;;;;;;1738:516;;;;;;;;;:::o;2262:::-;2478:12;2492:23;2519:6;-1:-1:-1;;;;;2519:19:11;2576:55;;;2633:8;2643:12;2657:4;;2663:2;2667:8;2539:147;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2539:147:11;-1:-1:-1;;;;;2539:147:11;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2539:147:11;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2539:147:11;;;;-1:-1:-1;;;;;2539:147:11;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2539:147:11;2519:168;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;712:520:11;930:12;944:23;971:6;-1:-1:-1;;;;;971:19:11;1028:57;;;1087:9;1098:11;1111:4;;1117:2;1121:8;991:149;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;991:149:11;-1:-1:-1;;;;;991:149:11;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;991:149:11;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;991:149:11;;;;-1:-1:-1;;;;;991:149:11;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;991:149:11;971:170;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;184:520:11;402:12;416:23;443:6;-1:-1:-1;;;;;443:19:11;500:57;;;559:8;569:12;583:4;;589:2;593:8;463:149;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;463:149:11;-1:-1:-1;;;;;463:149:11;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;463:149:11;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;463:149:11;;;;-1:-1:-1;;;;;463:149:11;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;463:149:11;443:170;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;2786:484:11;2983:12;2997:23;3024:6;-1:-1:-1;;;;;3024:19:11;3081:55;;;3138:9;3149:4;;3155:2;3159:8;3044:134;;;;;;;;;;;;;;-1:-1:-1;;;;;3044:134:11;-1:-1:-1;;;;;3044:134:11;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3044:134:11;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3044:134:11;;;;-1:-1:-1;;;;;3044:134:11;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;3044:134:11;3024:155;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3024:155:11;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;2982:197:11;;;;3197:7;3190:15;;;;3221:41;3240:10;3229:32;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3229:32:11;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;3229:32:11;;421:4:-1;412:14;;;;3229:32:11;;;;;412:14:-1;3229:32:11;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3229:32:11;;;;;;;;;;;3221:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3221:41:11;;;;;;;;;;;;;;;;;2786:484;;;;;;;;:::o;1240:490::-;1440:12;1454:23;1481:6;-1:-1:-1;;;;;1481:19:11;1538:55;;;1595:12;1609:4;;1615:2;1619:8;1501:137;;;;;;;;;;;;;;-1:-1:-1;;;;;1501:137:11;-1:-1:-1;;;;;1501:137:11;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;1501:137:11;;;137:4:-1;117:14;;;-1:-1;;113:30;;;157:16;;;26:21;;;22:32;;;6:49;;1501:137:11;;;49:4:-1;25:18;;;61:17;;-1:-1;;;;;182:15;1501:137:11;;;;179:29:-1;;;;160:49;;1481:158:11;;;;1501:137;;1481:158;;-1:-1:-1;1481:158:11;;-1:-1:-1;25:18;-1:-1;1481:158:11;-1:-1:-1;1481:158:11;;-1:-1:-1;1481:158:11;;-1:-1:-1;25:18;;-1:-1;;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;"},"methodIdentifiers":{"swapAVAXForExactTokens(address,uint256,address[],address,uint256)":"42011206","swapExactAVAXForTokens(address,uint256,address[],address,uint256)":"8a3a5fd5","swapExactTokensForAVAX(address,uint256,uint256,address[],address,uint256)":"1b48304f","swapExactTokensForTokens(address,uint256,uint256,address[],address,uint256)":"375734d9","swapTokensForExactAVAX(address,uint256,uint256,address[],address,uint256)":"0fb5112d","swapTokensForExactTokens(address,uint256,uint256,address[],address,uint256)":"22b58410"}},"metadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"Amounts\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"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\":\"swapAVAXForExactTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"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\":\"swapExactAVAXForTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"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\":\"swapExactTokensForAVAX\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"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\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"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\":\"swapTokensForExactAVAX\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"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\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-periphery/test/RouterEventEmitter.sol\":\"RouterEventEmitter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/pangolin-periphery/interfaces/IPangolinRouter.sol\":{\"keccak256\":\"0x4bd6d828ee059df5f36bff6a7bd558c81abe79fb339fc1518abc49b93f5641c3\",\"urls\":[\"bzz-raw://fe70738cdb2107c2df3029841012189f5fb32e59b33770acae4a730b555bf041\",\"dweb:/ipfs/QmXYK78en7WP55ej74M4iqoUmDJF3viXmhj7i8MuGJgbPU\"]},\"contracts/pangolin-periphery/test/RouterEventEmitter.sol\":{\"keccak256\":\"0x1fe5844b2e9aa10df02e36eeeff27cdf976ff4a686423d40a8ccffac2894f02c\",\"urls\":[\"bzz-raw://53c07a61b60309a897d98f20bb261c9b551f107ab7d26607a7c153313fd277e9\",\"dweb:/ipfs/Qmby83X8UsMAZTcM7RpKH7MsygyTAq6cCytXmjyaPDSfL8\"]}},\"version\":1}"}}}}}