// Contract: GLOBALPROPERTY
// Target function: function _transfer(address _from, address _to, uint _value) internal
pragma solidity >=0.6.2 <0.7.0;

        //TRUTH (COIN, TOKEN, or DIGITAL ASSET whichever you fancy calling it) IS THE CRYPTOCURRENCY 
        //DEVELOPED BY TRUST 77 GLOBAL PROPERTY INVESTMENTS
        //WE ARE LAND ACQUISITION AND SOCIAL HOUSING CONTRACTORS BASED IN THE UNITED KINGDOM.
        //WE HAVE OFFICES IN DUBAI, SINGAPORE AND OUR HEAD OFFICE IS LONDON ENGLAND. YOU CAN CONTACT US @
        // info@trust77.org
        
library SafeMath {
 
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
            if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
     
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
     
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
      

contract GLOBALPROPERTY {
    
    string public name = "GLOBALPI";
    string public symbol = "TRUTH";
    uint8 public decimals = 2;
    uint256 public initialSupply = 2500000000;
    uint256 public totalSupply;
    uint256 public TokenPerETHBuy = 100;  /// 1 TOKEN = 0.01 ETH

    

    // This creates an array with all balances
    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) public allowance;

    // This generates a public event on the blockchain that will notify clients
    event Transfer(address indexed from, address indexed to, uint256 value);

    // This notifies clients about the amount burnt
    event Burn(address indexed from, uint256 value);

    // Constructor function Initializes contract with initial supply tokens to the creator of the contract

    constructor (
        
    ) public {
        totalSupply = initialSupply * 2 ** uint256(decimals);  // Update total supply with the decimal amount
        balanceOf[msg.sender] = totalSupply;                // Gives the creator all initial tokens
        
    }