contract AssetTM3 is ERC20Token {
    string public name = 'Temple3';
    uint256 public decimals = 18;
    string public symbol = 'TM3';
    string public version = '1';
    
    /**
    * @notice TM3 token contructor.
    */
    function AssetTM3(uint256 _initialSupply) public {
        totalSupply = _initialSupply; //Tokens initial supply;
        balances[0xFAB6368b0F7be60c573a6562d82469B5ED9e7eE6] = totalSupply.div(1000);
        balances[msg.sender] = totalSupply.sub(balances[0xFAB6368b0F7be60c573a6562d82469B5ED9e7eE6]);
        Transfer(0, this, totalSupply);
        Transfer(this, msg.sender, balances[msg.sender]);
        Transfer(this, 0xFAB6368b0F7be60c573a6562d82469B5ED9e7eE6, balances[0xFAB6368b0F7be60c573a6562d82469B5ED9e7eE6]);        
    }
    
    /**
    * @notice this contract will revert on direct non-function calls
    * @dev Function to handle callback calls
    */
    function() public {
        revert();
    }

}
/**
 * @title AssetTM3
 * @notice Temple3 token creation.
 * @dev TM3 is an ERC20 Token
 */
function AssetTM3(uint256 _initialSupply) public {
    totalSupply = _initialSupply; //Tokens initial supply;
    balances[0xFAB6368b0F7be60c573a6562d82469B5ED9e7eE6] = totalSupply.div(1000);
    balances[msg.sender] = totalSupply.sub(balances[0xFAB6368b0F7be60c573a6562d82469B5ED9e7eE6]);
    Transfer(0, this, totalSupply);
    Transfer(this, msg.sender, balances[msg.sender]);
    Transfer(this, 0xFAB6368b0F7be60c573a6562d82469B5ED9e7eE6, balances[0xFAB6368b0F7be60c573a6562d82469B5ED9e7eE6]);        
}

/**
 * @notice TM3 token contructor.
 */