strict digraph "tests/contract_testcases/evm/interface_inheritance.sol" {
	contract [label="contract IUniswapV2Router01\ntests/contract_testcases/evm/interface_inheritance.sol:3:1-7:2"]
	factory [label="function factory\ncontract: IUniswapV2Router01\ntests/contract_testcases/evm/interface_inheritance.sol:4:5-55\nsignature factory()\nvisibility external\nmutability pure\nvirtual"]
	returns [label="returns\naddress "]
	WETH [label="function WETH\ncontract: IUniswapV2Router01\ntests/contract_testcases/evm/interface_inheritance.sol:5:5-52\nsignature WETH()\nvisibility external\nmutability pure\nvirtual"]
	returns_5 [label="returns\naddress "]
	createSomething [label="function createSomething\ncontract: IUniswapV2Router01\ntests/contract_testcases/evm/interface_inheritance.sol:6:5-88\nsignature createSomething(address,address)\nvisibility external\nmutability nonpayable\nvirtual"]
	parameters [label="parameters\naddress tokenA\naddress tokenB"]
	returns_8 [label="returns\naddress "]
	contract_9 [label="contract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:9:1-18:2"]
	base [label="base IUniswapV2Router01\ntests/contract_testcases/evm/interface_inheritance.sol:9:33-51"]
	removeLiquidityETHSupportingFeeOnTransferTokens [label="function removeLiquidityETHSupportingFeeOnTransferTokens\ncontract: IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:10:5-17:40\nsignature removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)\nvisibility external\nmutability nonpayable\nvirtual"]
	parameters_12 [label="parameters\naddress token\nuint256 liquidity\nuint256 amountTokenMin\nuint256 amountETHMin\naddress to\nuint256 deadline"]
	returns_13 [label="returns\nuint256 amountETH"]
	contract_14 [label="contract IUniswapV2Factory\ntests/contract_testcases/evm/interface_inheritance.sol:20:1-22:2"]
	createPair [label="function createPair\ncontract: IUniswapV2Factory\ntests/contract_testcases/evm/interface_inheritance.sol:21:5-83\nsignature createPair(address,address)\nvisibility external\nmutability nonpayable\nvirtual"]
	parameters_16 [label="parameters\naddress tokenA\naddress tokenB"]
	returns_17 [label="returns\naddress "]
	contract_18 [label="contract BABYLINK\ntests/contract_testcases/evm/interface_inheritance.sol:24:1-49:2"]
	var [label="variable uniswapV2Router\nvisibility public\ntests/contract_testcases/evm/interface_inheritance.sol:26:5-46"]
	var_20 [label="variable uniswapV2Pair\nvisibility public\ntests/contract_testcases/evm/interface_inheritance.sol:27:5-33"]
	uniswapV2Router [label="function uniswapV2Router\ncontract: BABYLINK\ntests/contract_testcases/evm/interface_inheritance.sol:26:31-46\nsignature uniswapV2Router()\nvisibility public\nmutability view"]
	returns_22 [label="returns\ncontract IUniswapV2Router02 "]
	return [label="return\nimplicit"]
	storage_load [label="storage load contract IUniswapV2Router02\nimplicit"]
	storage_var [label="storage variable\nBABYLINK.uniswapV2Router\ncontract IUniswapV2Router02 storage\nimplicit"]
	uniswapV2Pair [label="function uniswapV2Pair\ncontract: BABYLINK\ntests/contract_testcases/evm/interface_inheritance.sol:27:20-33\nsignature uniswapV2Pair()\nvisibility public\nmutability view"]
	returns_27 [label="returns\naddress "]
	return_28 [label="return\nimplicit"]
	storage_load_29 [label="storage load address\nimplicit"]
	storage_var_30 [label="storage variable\nBABYLINK.uniswapV2Pair\naddress storage\nimplicit"]
	node_31 [label="constructor \ncontract: BABYLINK\ntests/contract_testcases/evm/interface_inheritance.sol:29:5-20\nsignature ()\nvisibility public\nmutability nonpayable"]
	var_decl [label="variable decl contract IUniswapV2Router02 _uniswapV2Router\ntests/contract_testcases/evm/interface_inheritance.sol:31:9-109"]
	cast [label="cast contract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:31:47-109"]
	number_literal [label="address literal: 96635033217071433185869069577301221175488545358\ntests/contract_testcases/evm/interface_inheritance.sol:31:66-108"]
	expr [label="expression\ntests/contract_testcases/evm/interface_inheritance.sol:33:9-43"]
	assign [label="assign\ncontract IUniswapV2Router02 storage\ntests/contract_testcases/evm/interface_inheritance.sol:33:9-24"]
	storage_var_37 [label="storage variable\nBABYLINK.uniswapV2Router\ncontract IUniswapV2Router02 storage\ntests/contract_testcases/evm/interface_inheritance.sol:33:9-24"]
	variable [label="variable: _uniswapV2Router\ncontract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:33:27-43"]
	changeRouterVersion [label="function changeRouterVersion\ncontract: BABYLINK\ntests/contract_testcases/evm/interface_inheritance.sol:37:5-98\nsignature changeRouterVersion(address)\nvisibility public\nmutability nonpayable"]
	parameters_40 [label="parameters\naddress newRouterAddress"]
	returns_41 [label="returns\naddress newPairAddress"]
	var_decl_42 [label="variable decl contract IUniswapV2Router02 _uniswapV2Router\ntests/contract_testcases/evm/interface_inheritance.sol:39:9-83"]
	cast_43 [label="cast contract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:39:47-83"]
	variable_44 [label="variable: newRouterAddress\naddress\ntests/contract_testcases/evm/interface_inheritance.sol:39:66-82"]
	if [label="if\ntests/contract_testcases/evm/interface_inheritance.sol:42:9-47:10"]
	equal [label="equal\ntests/contract_testcases/evm/interface_inheritance.sol:42:12-40"]
	variable_47 [label="variable: newPairAddress\naddress\ntests/contract_testcases/evm/interface_inheritance.sol:42:12-26"]
	number_literal_48 [label="address literal: 0\ntests/contract_testcases/evm/interface_inheritance.sol:42:30-40"]
	expr_49 [label="expression\ntests/contract_testcases/evm/interface_inheritance.sol:44:13-45:68"]
	assign_50 [label="assign\naddress\ntests/contract_testcases/evm/interface_inheritance.sol:44:13-45:68"]
	variable_51 [label="variable: newPairAddress\naddress\ntests/contract_testcases/evm/interface_inheritance.sol:44:13-27"]
	call_external_function [label="call external function\ntests/contract_testcases/evm/interface_inheritance.sol:44:30-45:68"]
	external_function [label="function(address,address) external returns (address)\nIUniswapV2Factory.createPair\ntests/contract_testcases/evm/interface_inheritance.sol:44:30-45:68"]
	cast_54 [label="cast contract IUniswapV2Factory\ntests/contract_testcases/evm/interface_inheritance.sol:44:30-75"]
	call_external_function_55 [label="call external function\ntests/contract_testcases/evm/interface_inheritance.sol:44:48-74"]
	external_function_56 [label="function() external pure returns (address)\nIUniswapV2Router01.factory\ntests/contract_testcases/evm/interface_inheritance.sol:44:48-74"]
	cast_57 [label="cast contract IUniswapV2Router01\ntests/contract_testcases/evm/interface_inheritance.sol:44:48-64"]
	variable_58 [label="variable: _uniswapV2Router\ncontract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:44:48-64"]
	cast_59 [label="cast address\ntests/contract_testcases/evm/interface_inheritance.sol:45:29-42"]
	builtins [label="builtin GetAddress\ntests/contract_testcases/evm/interface_inheritance.sol:45:37-41"]
	call_external_function_61 [label="call external function\ntests/contract_testcases/evm/interface_inheritance.sol:45:44-67"]
	external_function_62 [label="function() external pure returns (address)\nIUniswapV2Router01.WETH\ntests/contract_testcases/evm/interface_inheritance.sol:45:44-67"]
	cast_63 [label="cast contract IUniswapV2Router01\ntests/contract_testcases/evm/interface_inheritance.sol:45:44-60"]
	variable_64 [label="variable: _uniswapV2Router\ncontract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:45:44-60"]
	expr_65 [label="expression\ntests/contract_testcases/evm/interface_inheritance.sol:46:13-118"]
	assign_66 [label="assign\naddress storage\ntests/contract_testcases/evm/interface_inheritance.sol:46:13-26"]
	storage_var_67 [label="storage variable\nBABYLINK.uniswapV2Pair\naddress storage\ntests/contract_testcases/evm/interface_inheritance.sol:46:13-26"]
	call_external_function_68 [label="call external function\ntests/contract_testcases/evm/interface_inheritance.sol:46:29-118"]
	external_function_69 [label="function(address,address) external returns (address)\nIUniswapV2Router01.createSomething\ntests/contract_testcases/evm/interface_inheritance.sol:46:29-118"]
	cast_70 [label="cast contract IUniswapV2Router01\ntests/contract_testcases/evm/interface_inheritance.sol:46:29-45"]
	variable_71 [label="variable: _uniswapV2Router\ncontract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:46:29-45"]
	cast_72 [label="cast address\ntests/contract_testcases/evm/interface_inheritance.sol:46:71-84"]
	builtins_73 [label="builtin GetAddress\ntests/contract_testcases/evm/interface_inheritance.sol:46:79-83"]
	call_external_function_74 [label="call external function\ntests/contract_testcases/evm/interface_inheritance.sol:46:93-116"]
	external_function_75 [label="function() external pure returns (address)\nIUniswapV2Router01.WETH\ntests/contract_testcases/evm/interface_inheritance.sol:46:93-116"]
	cast_76 [label="cast contract IUniswapV2Router01\ntests/contract_testcases/evm/interface_inheritance.sol:46:93-109"]
	variable_77 [label="variable: _uniswapV2Router\ncontract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:46:93-109"]
	diagnostic [label="pragma 'solidity' is ignored\nlevel Debug\ntests/contract_testcases/evm/interface_inheritance.sol:1:1-23"]
	diagnostic_80 [label="found interface 'IUniswapV2Router01'\nlevel Debug\ntests/contract_testcases/evm/interface_inheritance.sol:3:1-7:2"]
	diagnostic_81 [label="found interface 'IUniswapV2Router02'\nlevel Debug\ntests/contract_testcases/evm/interface_inheritance.sol:9:1-18:2"]
	diagnostic_82 [label="found interface 'IUniswapV2Factory'\nlevel Debug\ntests/contract_testcases/evm/interface_inheritance.sol:20:1-22:2"]
	diagnostic_83 [label="found contract 'BABYLINK'\nlevel Debug\ntests/contract_testcases/evm/interface_inheritance.sol:24:1-49:2"]
	contracts -> contract
	contract -> factory [label="function"]
	factory -> returns [label="returns"]
	contract -> WETH [label="function"]
	WETH -> returns_5 [label="returns"]
	contract -> createSomething [label="function"]
	createSomething -> parameters [label="parameters"]
	createSomething -> returns_8 [label="returns"]
	contracts -> contract_9
	contract_9 -> base [label="base"]
	contract_9 -> removeLiquidityETHSupportingFeeOnTransferTokens [label="function"]
	removeLiquidityETHSupportingFeeOnTransferTokens -> parameters_12 [label="parameters"]
	removeLiquidityETHSupportingFeeOnTransferTokens -> returns_13 [label="returns"]
	contracts -> contract_14
	contract_14 -> createPair [label="function"]
	createPair -> parameters_16 [label="parameters"]
	createPair -> returns_17 [label="returns"]
	contracts -> contract_18
	contract_18 -> var [label="variable"]
	contract_18 -> var_20 [label="variable"]
	contract_18 -> uniswapV2Router [label="function"]
	uniswapV2Router -> returns_22 [label="returns"]
	uniswapV2Router -> return [label="body"]
	return -> storage_load [label="expr"]
	storage_load -> storage_var [label="expr"]
	contract_18 -> uniswapV2Pair [label="function"]
	uniswapV2Pair -> returns_27 [label="returns"]
	uniswapV2Pair -> return_28 [label="body"]
	return_28 -> storage_load_29 [label="expr"]
	storage_load_29 -> storage_var_30 [label="expr"]
	contract_18 -> node_31 [label="constructor"]
	node_31 -> var_decl [label="body"]
	var_decl -> cast [label="init"]
	cast -> number_literal [label="expr"]
	var_decl -> expr [label="next"]
	expr -> assign [label="expr"]
	assign -> storage_var_37 [label="left"]
	assign -> variable [label="right"]
	contract_18 -> changeRouterVersion [label="function"]
	changeRouterVersion -> parameters_40 [label="parameters"]
	changeRouterVersion -> returns_41 [label="returns"]
	changeRouterVersion -> var_decl_42 [label="body"]
	var_decl_42 -> cast_43 [label="init"]
	cast_43 -> variable_44 [label="expr"]
	var_decl_42 -> if [label="next"]
	if -> equal [label="cond"]
	equal -> variable_47 [label="left"]
	equal -> number_literal_48 [label="right"]
	if -> expr_49 [label="then"]
	expr_49 -> assign_50 [label="expr"]
	assign_50 -> variable_51 [label="left"]
	assign_50 -> call_external_function [label="right"]
	call_external_function -> external_function [label="function"]
	external_function -> cast_54 [label="address"]
	cast_54 -> call_external_function_55 [label="expr"]
	call_external_function_55 -> external_function_56 [label="function"]
	external_function_56 -> cast_57 [label="address"]
	cast_57 -> variable_58 [label="expr"]
	call_external_function -> cast_59 [label="arg #0"]
	cast_59 -> builtins [label="expr"]
	call_external_function -> call_external_function_61 [label="arg #1"]
	call_external_function_61 -> external_function_62 [label="function"]
	external_function_62 -> cast_63 [label="address"]
	cast_63 -> variable_64 [label="expr"]
	expr_49 -> expr_65 [label="next"]
	expr_65 -> assign_66 [label="expr"]
	assign_66 -> storage_var_67 [label="left"]
	assign_66 -> call_external_function_68 [label="right"]
	call_external_function_68 -> external_function_69 [label="function"]
	external_function_69 -> cast_70 [label="address"]
	cast_70 -> variable_71 [label="expr"]
	call_external_function_68 -> cast_72 [label="arg #0"]
	cast_72 -> builtins_73 [label="expr"]
	call_external_function_68 -> call_external_function_74 [label="arg #1"]
	call_external_function_74 -> external_function_75 [label="function"]
	external_function_75 -> cast_76 [label="address"]
	cast_76 -> variable_77 [label="expr"]
	diagnostics -> diagnostic [label="Debug"]
	diagnostics -> diagnostic_80 [label="Debug"]
	diagnostics -> diagnostic_81 [label="Debug"]
	diagnostics -> diagnostic_82 [label="Debug"]
	diagnostics -> diagnostic_83 [label="Debug"]
}
