contract Chichi is ERC20, ERC20Burnable, ERC20Permit, ERC20Votes {
  constructor() ERC20("CHICHI Inu", "CHICHI") ERC20Permit("Chichi Inu") {
    _mint(msg.sender, 1000000000000 * 10 ** decimals());
  }

  // Solidity required overrides

  function _afterTokenTransfer(address from, address to, uint256 amount)
    internal
    override(ERC20, ERC20Votes)
  {
    super._afterTokenTransfer(from, to, amount);
  }

  function _mint(address to, uint256 amount)
    internal
    override(ERC20, ERC20Votes)
  {
    super._mint(to, amount);
  }

  function _burn(address account, uint256 amount)
    internal
    override(ERC20, ERC20Votes)
  {
    super._burn(account, amount);
  }
}
function _afterTokenTransfer(address from, address to, uint256 amount)
  internal
  override(ERC20, ERC20Votes)
{
  super._afterTokenTransfer(from, to, amount);
}

// Solidity required overrides