contract Token {

    /// return total amount of tokens
    function totalSupply() public pure returns (uint256) {}

    /// param _owner The address from which the balance will be retrieved
    /// return The balance
    function balanceOf(address) public payable returns (uint256) {}

    /// notice send `_value` token to `_to` from `msg.sender`
    /// param _to The address of the recipient
    /// param _value The amount of token to be transferred
    /// return Whether the transfer was successful or not
    function transfer(address , uint256 ) public payable returns (bool) {}

    /// notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// param _from The address of the sender
    /// param _to The address of the recipient
    /// param _value The amount of token to be transferred
    /// return Whether the transfer was successful or not
    function transferFrom(address , address , uint256 ) public payable returns (bool ) {}

    /// notice `msg.sender` approves `_addr` to spend `_value` tokens
    /// param _spender The address of the account able to transfer the tokens
    /// param _value The amount of wei to be approved for transfer
    /// return Whether the approval was successful or not
    function approve(address , uint256 ) public payable returns (bool ) {}

    /// param _owner The address of the account owning tokens
    /// param _spender The address of the account able to transfer the tokens
    /// return Amount of remaining tokens allowed to spent
    function allowance(address , address ) public payable returns (uint256 ) {}

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
function balanceOf(address) public payable returns (uint256) {}

/// param _owner The address from which the balance will be retrieved
/// return The balance