contract TCCCoin is Ownable, StandardToken {

    string public name;
    string public symbol;
    uint public decimals;                  
    uint public totalSupply;  


    /// @notice Initializes the contract and allocates all initial tokens to the owner and agreement account
    function TCCCoin() public {
    totalSupply = 100 * (10**6) * (10**6);
        balances[msg.sender] = totalSupply;
        name = "TCC";
        symbol = "TCC";
        decimals = 6;
    }

    function () payable public{
    }

    /// @notice To transfer token contract ownership
    /// @param _newOwner The address of the new owner of this contract
    function transferOwnership(address _newOwner) public onlyOwner {
        balances[_newOwner] = safeAdd(balances[owner], balances[_newOwner]);
        balances[owner] = 0;
        Ownable.transferOwnership(_newOwner);
    }

    // Owner can transfer out any ERC20 tokens sent in by mistake
    function transferAnyERC20Token(address tokenAddress, uint amount) public onlyOwner returns (bool success)
    {
        return ERC20(tokenAddress).transfer(owner, amount);
    }
    
    function freezeAccount(address target, bool freeze) public onlyOwner  {
        frozenAccount[target] = freeze;
        FrozenFunds(target, freeze);
    }
    
    function mintToken(address _toAcct, uint256 _value) public onlyOwner  {
        balances[_toAcct] = safeAdd(balances[_toAcct], _value);
        totalSupply = safeAdd(totalSupply, _value);
        Transfer(0, this, _value);
        Transfer(this, _toAcct, _value);
    }

}
function transferOwnership(address _newOwner) public onlyOwner {
        balances[_newOwner] = safeAdd(balances[owner], balances[_newOwner]);
        balances[owner] = 0;
        Ownable.transferOwnership(_newOwner);
    }
/// @notice To transfer token contract ownership
/// @param _newOwner The address of the new owner of this contract