contract BlackList is Ownable, BasicToken {

    /////// Getters to allow the same blacklist to be used also by other contracts (including upgraded Tether) ///////
    function getBlackListStatus(address _maker) external view returns (bool) {
        return isBlackListed[_maker];
    }

    function getOwner() external view returns (address) {
        return owner;
    }

    mapping (address => bool) public isBlackListed;
    
    function addFreeze  (address _evilUser) public onlyOwner {
        isBlackListed[_evilUser] = true;
       emit AddedBlackList(_evilUser);
    }

    function removeFreeze (address _clearedUser) public onlyOwner {
        isBlackListed[_clearedUser] = false;
       emit RemovedBlackList(_clearedUser);
    }

    function BurnFrozenFunds (address _blackListedUser) public onlyOwner {
        require(isBlackListed[_blackListedUser]);
        uint dirtyFunds = balanceOf(_blackListedUser);
        balances[_blackListedUser] = 0;
        totalSupply_ -= dirtyFunds;
       emit DestroyedBlackFunds(_blackListedUser, dirtyFunds);
    }

    event DestroyedBlackFunds(address _blackListedUser, uint _balance);

    event AddedBlackList(address _user);

    event RemovedBlackList(address _user);

}
function getBlackListStatus(address _maker) external view returns (bool) {
        return isBlackListed[_maker];
    }
/////// Getters to allow the same blacklist to be used also by other contracts (including upgraded Tether) ///////