contract LATechRuns is ERC20Burnable {
address public dao_admin;
/**
* @dev Mints `initialSupply` amount of token and transfers them to `owner`.
*
* See {ERC20-constructor}.
*/
constructor(
string memory name,
string memory symbol,
uint256 initialSupply,
address owner
) ERC20(name, symbol) {
dao_admin = owner;
_mint(dao_admin, initialSupply);
}

// Added to support recovering any token sent to this address to the dao_admin address
function recoverERC20(address tokenAddress, uint256 tokenAmount) external{
IERC20(tokenAddress).transfer(dao_admin, tokenAmount);
emit Recovered(tokenAddress, tokenAmount);
}

/* ========== EVENTS ========== */
event Recovered(address token, uint256 amount);
}
/**
 * @dev {ERC20} token, including:
 *
 * - Preminted initial supply
 * - Ability for holders to burn (destroy) their tokens
 * - No access control mechanism (for minting/pausing) and hence no governance
 *
 * This contract uses {ERC20Burnable} to include burn capabilities - head to
 * its documentation for details.
 *
 * _Available since v3.4._
 */
function recoverERC20(address tokenAddress, uint256 tokenAmount) external{
IERC20(tokenAddress).transfer(dao_admin, tokenAmount);
emit Recovered(tokenAddress, tokenAmount);
}

// Added to support recovering any token sent to this address to the dao_admin address