{
  "abi": [
    {
      "inputs": [],
      "name": "WETH",
      "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": "amountETHMin",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "addLiquidityETH",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amountToken",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amountETH",
          "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": "amountETHMin",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "removeLiquidityETH",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amountToken",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amountETH",
          "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": "amountETHMin",
          "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": "removeLiquidityETHWithPermit",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amountToken",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amountETH",
          "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": "swapETHForExactTokens",
      "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": "swapExactETHForTokens",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amountIn",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amountOutMin",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "path",
          "type": "address[]"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapExactTokensForETH",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amountIn",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amountOutMin",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "path",
          "type": "address[]"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapExactTokensForTokens",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amountOut",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amountInMax",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "path",
          "type": "address[]"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapTokensForExactETH",
      "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"
    }
  ],
  "allSourcePaths": {
    "112": "node_modules/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol"
  },
  "ast": {
    "absolutePath": "node_modules/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol",
    "exportedSymbols": {
      "IUniswapV2Router01": [
        24652
      ]
    },
    "id": 24653,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 24346,
        "literals": [
          "solidity",
          ">=",
          "0.6",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:112"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 24652,
        "linearizedBaseContracts": [
          24652
        ],
        "name": "IUniswapV2Router01",
        "nameLocation": "36:18:112",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "functionSelector": "c45a0155",
            "id": 24351,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "factory",
            "nameLocation": "70:7:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24347,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "77:2:112"
            },
            "returnParameters": {
              "id": 24350,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24349,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 24351,
                  "src": "103:7:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24348,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "103:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "102:9:112"
            },
            "scope": 24652,
            "src": "61:51:112",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "ad5c4648",
            "id": 24356,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "WETH",
            "nameLocation": "126:4:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24352,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "130:2:112"
            },
            "returnParameters": {
              "id": 24355,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24354,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 24356,
                  "src": "156:7:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24353,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "156:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "155:9:112"
            },
            "scope": 24652,
            "src": "117:48:112",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "e8e33700",
            "id": 24381,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addLiquidity",
            "nameLocation": "180:12:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24373,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24358,
                  "mutability": "mutable",
                  "name": "tokenA",
                  "nameLocation": "210:6:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24381,
                  "src": "202:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24357,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "202:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24360,
                  "mutability": "mutable",
                  "name": "tokenB",
                  "nameLocation": "234:6:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24381,
                  "src": "226:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24359,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "226:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24362,
                  "mutability": "mutable",
                  "name": "amountADesired",
                  "nameLocation": "255:14:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24381,
                  "src": "250:19:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24361,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "250:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24364,
                  "mutability": "mutable",
                  "name": "amountBDesired",
                  "nameLocation": "284:14:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24381,
                  "src": "279:19:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24363,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "279:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24366,
                  "mutability": "mutable",
                  "name": "amountAMin",
                  "nameLocation": "313:10:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24381,
                  "src": "308:15:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24365,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "308:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24368,
                  "mutability": "mutable",
                  "name": "amountBMin",
                  "nameLocation": "338:10:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24381,
                  "src": "333:15:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24367,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "333:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24370,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "366:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24381,
                  "src": "358:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24369,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "358:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24372,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "383:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24381,
                  "src": "378:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24371,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "378:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "192:205:112"
            },
            "returnParameters": {
              "id": 24380,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24375,
                  "mutability": "mutable",
                  "name": "amountA",
                  "nameLocation": "421:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24381,
                  "src": "416:12:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24374,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "416:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24377,
                  "mutability": "mutable",
                  "name": "amountB",
                  "nameLocation": "435:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24381,
                  "src": "430:12:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24376,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "430:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24379,
                  "mutability": "mutable",
                  "name": "liquidity",
                  "nameLocation": "449:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24381,
                  "src": "444:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24378,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "444:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "415:44:112"
            },
            "scope": 24652,
            "src": "171:289:112",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "f305d719",
            "id": 24402,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addLiquidityETH",
            "nameLocation": "474:15:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24394,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24383,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "507:5:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24402,
                  "src": "499:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24382,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "499:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24385,
                  "mutability": "mutable",
                  "name": "amountTokenDesired",
                  "nameLocation": "527:18:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24402,
                  "src": "522:23:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24384,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "522:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24387,
                  "mutability": "mutable",
                  "name": "amountTokenMin",
                  "nameLocation": "560:14:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24402,
                  "src": "555:19:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24386,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "555:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24389,
                  "mutability": "mutable",
                  "name": "amountETHMin",
                  "nameLocation": "589:12:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24402,
                  "src": "584:17:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24388,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "584:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24391,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "619:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24402,
                  "src": "611:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24390,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "611:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24393,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "636:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24402,
                  "src": "631:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24392,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "631:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "489:161:112"
            },
            "returnParameters": {
              "id": 24401,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24396,
                  "mutability": "mutable",
                  "name": "amountToken",
                  "nameLocation": "682:11:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24402,
                  "src": "677:16:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24395,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "677:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24398,
                  "mutability": "mutable",
                  "name": "amountETH",
                  "nameLocation": "700:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24402,
                  "src": "695:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24397,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "695:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24400,
                  "mutability": "mutable",
                  "name": "liquidity",
                  "nameLocation": "716:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24402,
                  "src": "711:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24399,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "711:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "676:50:112"
            },
            "scope": 24652,
            "src": "465:262:112",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "baa2abde",
            "id": 24423,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquidity",
            "nameLocation": "741:15:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24417,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24404,
                  "mutability": "mutable",
                  "name": "tokenA",
                  "nameLocation": "774:6:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24423,
                  "src": "766:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24403,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "766:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24406,
                  "mutability": "mutable",
                  "name": "tokenB",
                  "nameLocation": "798:6:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24423,
                  "src": "790:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24405,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "790:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24408,
                  "mutability": "mutable",
                  "name": "liquidity",
                  "nameLocation": "819:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24423,
                  "src": "814:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24407,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "814:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24410,
                  "mutability": "mutable",
                  "name": "amountAMin",
                  "nameLocation": "843:10:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24423,
                  "src": "838:15:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24409,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "838:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24412,
                  "mutability": "mutable",
                  "name": "amountBMin",
                  "nameLocation": "868:10:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24423,
                  "src": "863:15:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24411,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "863:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24414,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "896:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24423,
                  "src": "888:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24413,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "888:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24416,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "913:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24423,
                  "src": "908:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24415,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "908:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "756:171:112"
            },
            "returnParameters": {
              "id": 24422,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24419,
                  "mutability": "mutable",
                  "name": "amountA",
                  "nameLocation": "951:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24423,
                  "src": "946:12:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24418,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "946:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24421,
                  "mutability": "mutable",
                  "name": "amountB",
                  "nameLocation": "965:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24423,
                  "src": "960:12:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24420,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "960:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "945:28:112"
            },
            "scope": 24652,
            "src": "732:242:112",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "02751cec",
            "id": 24442,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquidityETH",
            "nameLocation": "988:18:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24436,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24425,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "1024:5:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24442,
                  "src": "1016:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24424,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1016:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24427,
                  "mutability": "mutable",
                  "name": "liquidity",
                  "nameLocation": "1044:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24442,
                  "src": "1039:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24426,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1039:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24429,
                  "mutability": "mutable",
                  "name": "amountTokenMin",
                  "nameLocation": "1068:14:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24442,
                  "src": "1063:19:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24428,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1063:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24431,
                  "mutability": "mutable",
                  "name": "amountETHMin",
                  "nameLocation": "1097:12:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24442,
                  "src": "1092:17:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24430,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1092:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24433,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1127:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24442,
                  "src": "1119:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24432,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1119:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24435,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "1144:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24442,
                  "src": "1139:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24434,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1139:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1006:152:112"
            },
            "returnParameters": {
              "id": 24441,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24438,
                  "mutability": "mutable",
                  "name": "amountToken",
                  "nameLocation": "1182:11:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24442,
                  "src": "1177:16:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24437,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1177:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24440,
                  "mutability": "mutable",
                  "name": "amountETH",
                  "nameLocation": "1200:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24442,
                  "src": "1195:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24439,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1195:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1176:34:112"
            },
            "scope": 24652,
            "src": "979:232:112",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "2195995c",
            "id": 24471,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquidityWithPermit",
            "nameLocation": "1225:25:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24444,
                  "mutability": "mutable",
                  "name": "tokenA",
                  "nameLocation": "1268:6:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1260:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24443,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1260:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24446,
                  "mutability": "mutable",
                  "name": "tokenB",
                  "nameLocation": "1292:6:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1284:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24445,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1284:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24448,
                  "mutability": "mutable",
                  "name": "liquidity",
                  "nameLocation": "1313:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1308:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24447,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1308:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24450,
                  "mutability": "mutable",
                  "name": "amountAMin",
                  "nameLocation": "1337:10:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1332:15:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24449,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1332:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24452,
                  "mutability": "mutable",
                  "name": "amountBMin",
                  "nameLocation": "1362:10:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1357:15:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24451,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1357:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24454,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1390:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1382:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24453,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1382:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24456,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "1407:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1402:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24455,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1402:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24458,
                  "mutability": "mutable",
                  "name": "approveMax",
                  "nameLocation": "1430:10:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1425:15:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24457,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1425:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24460,
                  "mutability": "mutable",
                  "name": "v",
                  "nameLocation": "1448:1:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1442:7:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 24459,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1442:5:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24462,
                  "mutability": "mutable",
                  "name": "r",
                  "nameLocation": "1459:1:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1451:9:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24461,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1451:7:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24464,
                  "mutability": "mutable",
                  "name": "s",
                  "nameLocation": "1470:1:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1462:9:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24463,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1462:7:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1250:227:112"
            },
            "returnParameters": {
              "id": 24470,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24467,
                  "mutability": "mutable",
                  "name": "amountA",
                  "nameLocation": "1501:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1496:12:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24466,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1496:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24469,
                  "mutability": "mutable",
                  "name": "amountB",
                  "nameLocation": "1515:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24471,
                  "src": "1510:12:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24468,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1510:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1495:28:112"
            },
            "scope": 24652,
            "src": "1216:308:112",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "ded9382a",
            "id": 24498,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquidityETHWithPermit",
            "nameLocation": "1538:28:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24492,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24473,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "1584:5:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1576:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24472,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1576:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24475,
                  "mutability": "mutable",
                  "name": "liquidity",
                  "nameLocation": "1604:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1599:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24474,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1599:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24477,
                  "mutability": "mutable",
                  "name": "amountTokenMin",
                  "nameLocation": "1628:14:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1623:19:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24476,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1623:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24479,
                  "mutability": "mutable",
                  "name": "amountETHMin",
                  "nameLocation": "1657:12:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1652:17:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24478,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1652:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24481,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1687:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1679:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24480,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1679:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24483,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "1704:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1699:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24482,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1699:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24485,
                  "mutability": "mutable",
                  "name": "approveMax",
                  "nameLocation": "1727:10:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1722:15:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24484,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1722:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24487,
                  "mutability": "mutable",
                  "name": "v",
                  "nameLocation": "1745:1:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1739:7:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 24486,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1739:5:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24489,
                  "mutability": "mutable",
                  "name": "r",
                  "nameLocation": "1756:1:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1748:9:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24488,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1748:7:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24491,
                  "mutability": "mutable",
                  "name": "s",
                  "nameLocation": "1767:1:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1759:9:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24490,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1759:7:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1566:208:112"
            },
            "returnParameters": {
              "id": 24497,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24494,
                  "mutability": "mutable",
                  "name": "amountToken",
                  "nameLocation": "1798:11:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1793:16:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24493,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1793:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24496,
                  "mutability": "mutable",
                  "name": "amountETH",
                  "nameLocation": "1816:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24498,
                  "src": "1811:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24495,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1811:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1792:34:112"
            },
            "scope": 24652,
            "src": "1529:298:112",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "38ed1739",
            "id": 24515,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactTokensForTokens",
            "nameLocation": "1841:24:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24510,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24500,
                  "mutability": "mutable",
                  "name": "amountIn",
                  "nameLocation": "1880:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24515,
                  "src": "1875:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24499,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1875:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24502,
                  "mutability": "mutable",
                  "name": "amountOutMin",
                  "nameLocation": "1903:12:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24515,
                  "src": "1898:17:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24501,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1898:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24505,
                  "mutability": "mutable",
                  "name": "path",
                  "nameLocation": "1944:4:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24515,
                  "src": "1925:23:112",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24503,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1925:7:112",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 24504,
                    "nodeType": "ArrayTypeName",
                    "src": "1925:9:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24507,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1966:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24515,
                  "src": "1958:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24506,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1958:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24509,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "1983:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24515,
                  "src": "1978:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24508,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1978:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1865:132:112"
            },
            "returnParameters": {
              "id": 24514,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24513,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "2030:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24515,
                  "src": "2016:21:112",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24511,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2016:4:112",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 24512,
                    "nodeType": "ArrayTypeName",
                    "src": "2016:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2015:23:112"
            },
            "scope": 24652,
            "src": "1832:207:112",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "8803dbee",
            "id": 24532,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapTokensForExactTokens",
            "nameLocation": "2053:24:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24527,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24517,
                  "mutability": "mutable",
                  "name": "amountOut",
                  "nameLocation": "2092:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24532,
                  "src": "2087:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24516,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2087:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24519,
                  "mutability": "mutable",
                  "name": "amountInMax",
                  "nameLocation": "2116:11:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24532,
                  "src": "2111:16:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24518,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2111:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24522,
                  "mutability": "mutable",
                  "name": "path",
                  "nameLocation": "2156:4:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24532,
                  "src": "2137:23:112",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24520,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2137:7:112",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 24521,
                    "nodeType": "ArrayTypeName",
                    "src": "2137:9:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24524,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "2178:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24532,
                  "src": "2170:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24523,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2170:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24526,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "2195:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24532,
                  "src": "2190:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24525,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2190:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2077:132:112"
            },
            "returnParameters": {
              "id": 24531,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24530,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "2242:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24532,
                  "src": "2228:21:112",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24528,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2228:4:112",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 24529,
                    "nodeType": "ArrayTypeName",
                    "src": "2228:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2227:23:112"
            },
            "scope": 24652,
            "src": "2044:207:112",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "7ff36ab5",
            "id": 24547,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactETHForTokens",
            "nameLocation": "2265:21:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24542,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24534,
                  "mutability": "mutable",
                  "name": "amountOutMin",
                  "nameLocation": "2292:12:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24547,
                  "src": "2287:17:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24533,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2287:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24537,
                  "mutability": "mutable",
                  "name": "path",
                  "nameLocation": "2325:4:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24547,
                  "src": "2306:23:112",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24535,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2306:7:112",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 24536,
                    "nodeType": "ArrayTypeName",
                    "src": "2306:9:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24539,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "2339:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24547,
                  "src": "2331:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24538,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2331:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24541,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "2348:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24547,
                  "src": "2343:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24540,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2343:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2286:71:112"
            },
            "returnParameters": {
              "id": 24546,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24545,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "2422:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24547,
                  "src": "2408:21:112",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24543,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2408:4:112",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 24544,
                    "nodeType": "ArrayTypeName",
                    "src": "2408:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2407:23:112"
            },
            "scope": 24652,
            "src": "2256:175:112",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4a25d94a",
            "id": 24564,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapTokensForExactETH",
            "nameLocation": "2445:21:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24559,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24549,
                  "mutability": "mutable",
                  "name": "amountOut",
                  "nameLocation": "2472:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24564,
                  "src": "2467:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24548,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2467:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24551,
                  "mutability": "mutable",
                  "name": "amountInMax",
                  "nameLocation": "2488:11:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24564,
                  "src": "2483:16:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24550,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2483:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24554,
                  "mutability": "mutable",
                  "name": "path",
                  "nameLocation": "2520:4:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24564,
                  "src": "2501:23:112",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24552,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2501:7:112",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 24553,
                    "nodeType": "ArrayTypeName",
                    "src": "2501:9:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24556,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "2534:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24564,
                  "src": "2526:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24555,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2526:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24558,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "2543:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24564,
                  "src": "2538:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24557,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2538:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2466:86:112"
            },
            "returnParameters": {
              "id": 24563,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24562,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "2601:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24564,
                  "src": "2587:21:112",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24560,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2587:4:112",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 24561,
                    "nodeType": "ArrayTypeName",
                    "src": "2587:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2586:23:112"
            },
            "scope": 24652,
            "src": "2436:174:112",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "18cbafe5",
            "id": 24581,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactTokensForETH",
            "nameLocation": "2624:21:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24576,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24566,
                  "mutability": "mutable",
                  "name": "amountIn",
                  "nameLocation": "2651:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24581,
                  "src": "2646:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24565,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2646:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24568,
                  "mutability": "mutable",
                  "name": "amountOutMin",
                  "nameLocation": "2666:12:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24581,
                  "src": "2661:17:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24567,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2661:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24571,
                  "mutability": "mutable",
                  "name": "path",
                  "nameLocation": "2699:4:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24581,
                  "src": "2680:23:112",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24569,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2680:7:112",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 24570,
                    "nodeType": "ArrayTypeName",
                    "src": "2680:9:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24573,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "2713:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24581,
                  "src": "2705:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24572,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2705:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24575,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "2722:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24581,
                  "src": "2717:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24574,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2717:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2645:86:112"
            },
            "returnParameters": {
              "id": 24580,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24579,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "2780:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24581,
                  "src": "2766:21:112",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24577,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2766:4:112",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 24578,
                    "nodeType": "ArrayTypeName",
                    "src": "2766:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2765:23:112"
            },
            "scope": 24652,
            "src": "2615:174:112",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fb3bdb41",
            "id": 24596,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapETHForExactTokens",
            "nameLocation": "2803:21:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24591,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24583,
                  "mutability": "mutable",
                  "name": "amountOut",
                  "nameLocation": "2830:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24596,
                  "src": "2825:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24582,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2825:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24586,
                  "mutability": "mutable",
                  "name": "path",
                  "nameLocation": "2860:4:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24596,
                  "src": "2841:23:112",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24584,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2841:7:112",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 24585,
                    "nodeType": "ArrayTypeName",
                    "src": "2841:9:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24588,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "2874:2:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24596,
                  "src": "2866:10:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24587,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2866:7:112",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24590,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nameLocation": "2883:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24596,
                  "src": "2878:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24589,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2878:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2824:68:112"
            },
            "returnParameters": {
              "id": 24595,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24594,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "2957:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24596,
                  "src": "2943:21:112",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24592,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2943:4:112",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 24593,
                    "nodeType": "ArrayTypeName",
                    "src": "2943:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2942:23:112"
            },
            "scope": 24652,
            "src": "2794:172:112",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "ad615dec",
            "id": 24607,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "quote",
            "nameLocation": "2981:5:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24603,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24598,
                  "mutability": "mutable",
                  "name": "amountA",
                  "nameLocation": "2992:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24607,
                  "src": "2987:12:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24597,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2987:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24600,
                  "mutability": "mutable",
                  "name": "reserveA",
                  "nameLocation": "3006:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24607,
                  "src": "3001:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24599,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3001:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24602,
                  "mutability": "mutable",
                  "name": "reserveB",
                  "nameLocation": "3021:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24607,
                  "src": "3016:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24601,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3016:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2986:44:112"
            },
            "returnParameters": {
              "id": 24606,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24605,
                  "mutability": "mutable",
                  "name": "amountB",
                  "nameLocation": "3059:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24607,
                  "src": "3054:12:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24604,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3054:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3053:14:112"
            },
            "scope": 24652,
            "src": "2972:96:112",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "054d50d4",
            "id": 24618,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountOut",
            "nameLocation": "3082:12:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24609,
                  "mutability": "mutable",
                  "name": "amountIn",
                  "nameLocation": "3100:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24618,
                  "src": "3095:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24608,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3095:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24611,
                  "mutability": "mutable",
                  "name": "reserveIn",
                  "nameLocation": "3115:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24618,
                  "src": "3110:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24610,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3110:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24613,
                  "mutability": "mutable",
                  "name": "reserveOut",
                  "nameLocation": "3131:10:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24618,
                  "src": "3126:15:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24612,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3126:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3094:48:112"
            },
            "returnParameters": {
              "id": 24617,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24616,
                  "mutability": "mutable",
                  "name": "amountOut",
                  "nameLocation": "3171:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24618,
                  "src": "3166:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24615,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3166:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3165:16:112"
            },
            "scope": 24652,
            "src": "3073:109:112",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "85f8c259",
            "id": 24629,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountIn",
            "nameLocation": "3196:11:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24625,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24620,
                  "mutability": "mutable",
                  "name": "amountOut",
                  "nameLocation": "3213:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24629,
                  "src": "3208:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24619,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3208:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24622,
                  "mutability": "mutable",
                  "name": "reserveIn",
                  "nameLocation": "3229:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24629,
                  "src": "3224:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24621,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3224:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24624,
                  "mutability": "mutable",
                  "name": "reserveOut",
                  "nameLocation": "3245:10:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24629,
                  "src": "3240:15:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24623,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3240:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3207:49:112"
            },
            "returnParameters": {
              "id": 24628,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24627,
                  "mutability": "mutable",
                  "name": "amountIn",
                  "nameLocation": "3285:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24629,
                  "src": "3280:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24626,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3280:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3279:15:112"
            },
            "scope": 24652,
            "src": "3187:108:112",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d06ca61f",
            "id": 24640,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountsOut",
            "nameLocation": "3309:13:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24635,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24631,
                  "mutability": "mutable",
                  "name": "amountIn",
                  "nameLocation": "3328:8:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24640,
                  "src": "3323:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24630,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3323:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24634,
                  "mutability": "mutable",
                  "name": "path",
                  "nameLocation": "3357:4:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24640,
                  "src": "3338:23:112",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24632,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3338:7:112",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 24633,
                    "nodeType": "ArrayTypeName",
                    "src": "3338:9:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3322:40:112"
            },
            "returnParameters": {
              "id": 24639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24638,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "3400:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24640,
                  "src": "3386:21:112",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24636,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "3386:4:112",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 24637,
                    "nodeType": "ArrayTypeName",
                    "src": "3386:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3385:23:112"
            },
            "scope": 24652,
            "src": "3300:109:112",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "1f00ca74",
            "id": 24651,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountsIn",
            "nameLocation": "3423:12:112",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24646,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24642,
                  "mutability": "mutable",
                  "name": "amountOut",
                  "nameLocation": "3441:9:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24651,
                  "src": "3436:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24641,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3436:4:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24645,
                  "mutability": "mutable",
                  "name": "path",
                  "nameLocation": "3471:4:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24651,
                  "src": "3452:23:112",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24643,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3452:7:112",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 24644,
                    "nodeType": "ArrayTypeName",
                    "src": "3452:9:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3435:41:112"
            },
            "returnParameters": {
              "id": 24650,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24649,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "3514:7:112",
                  "nodeType": "VariableDeclaration",
                  "scope": 24651,
                  "src": "3500:21:112",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 24647,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "3500:4:112",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 24648,
                    "nodeType": "ArrayTypeName",
                    "src": "3500:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3499:23:112"
            },
            "scope": 24652,
            "src": "3414:109:112",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 24653,
        "src": "26:3499:112",
        "usedErrors": []
      }
    ],
    "src": "0:3526:112"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.6+commit.11564f7e"
  },
  "contractName": "IUniswapV2Router01",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    26,
    3525
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "f150379f2a39f6d992f9a0aa35915ea1f64658d9",
  "source": "pragma solidity >=0.6.2;\n\ninterface IUniswapV2Router01 {\n    function factory() external pure returns (address);\n    function WETH() external pure returns (address);\n\n    function addLiquidity(\n        address tokenA,\n        address tokenB,\n        uint amountADesired,\n        uint amountBDesired,\n        uint amountAMin,\n        uint amountBMin,\n        address to,\n        uint deadline\n    ) external returns (uint amountA, uint amountB, uint liquidity);\n    function addLiquidityETH(\n        address token,\n        uint amountTokenDesired,\n        uint amountTokenMin,\n        uint amountETHMin,\n        address to,\n        uint deadline\n    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);\n    function removeLiquidity(\n        address tokenA,\n        address tokenB,\n        uint liquidity,\n        uint amountAMin,\n        uint amountBMin,\n        address to,\n        uint deadline\n    ) external returns (uint amountA, uint amountB);\n    function removeLiquidityETH(\n        address token,\n        uint liquidity,\n        uint amountTokenMin,\n        uint amountETHMin,\n        address to,\n        uint deadline\n    ) external returns (uint amountToken, uint amountETH);\n    function removeLiquidityWithPermit(\n        address tokenA,\n        address tokenB,\n        uint liquidity,\n        uint amountAMin,\n        uint amountBMin,\n        address to,\n        uint deadline,\n        bool approveMax, uint8 v, bytes32 r, bytes32 s\n    ) external returns (uint amountA, uint amountB);\n    function removeLiquidityETHWithPermit(\n        address token,\n        uint liquidity,\n        uint amountTokenMin,\n        uint amountETHMin,\n        address to,\n        uint deadline,\n        bool approveMax, uint8 v, bytes32 r, bytes32 s\n    ) external returns (uint amountToken, uint amountETH);\n    function swapExactTokensForTokens(\n        uint amountIn,\n        uint amountOutMin,\n        address[] calldata path,\n        address to,\n        uint deadline\n    ) external returns (uint[] memory amounts);\n    function swapTokensForExactTokens(\n        uint amountOut,\n        uint amountInMax,\n        address[] calldata path,\n        address to,\n        uint deadline\n    ) external returns (uint[] memory amounts);\n    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)\n        external\n        payable\n        returns (uint[] memory amounts);\n    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)\n        external\n        returns (uint[] memory amounts);\n    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)\n        external\n        returns (uint[] memory amounts);\n    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)\n        external\n        payable\n        returns (uint[] memory amounts);\n\n    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);\n    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);\n    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);\n    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);\n    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);\n}\n",
  "sourceMap": "",
  "sourcePath": "node_modules/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol",
  "type": "interface"
}