contract Ownable
{
    //--------------------------------------------------------------------------
    //
    //	Properties
    //
    //--------------------------------------------------------------------------

    address public owner;


    //--------------------------------------------------------------------------
    //
    //	Events
    //
    //--------------------------------------------------------------------------

    event OwnershipRenounced(address indexed previousOwner);

    event OwnershipTransferred
    (
        address indexed previousOwner,
        address indexed newOwner
    );


    //--------------------------------------------------------------------------
    //
    //	Constructor
    //
    //--------------------------------------------------------------------------

    constructor() public
    {
        owner = msg.sender;
    }

    //--------------------------------------------------------------------------
    //
    //	Modifiers
    //
    //--------------------------------------------------------------------------

    modifier onlyOwner()
    {
        require(msg.sender == owner);
        _;
    }

    //--------------------------------------------------------------------------
    //
    //	Public Methods
    //
    //--------------------------------------------------------------------------

    function renounceOwnership() public onlyOwner
    {
        emit OwnershipRenounced(owner);
        owner = address(0);
    }

    function transferOwnership(address _newOwner) public onlyOwner
    {
        _transferOwnership(_newOwner);
    }

    function _transferOwnership(address _newOwner) internal
    {
        require(_newOwner != address(0));
        emit OwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }
}
function renounceOwnership() public onlyOwner
{
    emit OwnershipRenounced(owner);
    owner = address(0);
}

//--------------------------------------------------------------------------
//
//	Public Methods
//
//--------------------------------------------------------------------------