<SEC-DOCUMENT>0001654954-24-013420.txt : 20241029
<SEC-HEADER>0001654954-24-013420.hdr.sgml : 20241029
<ACCEPTANCE-DATETIME>20241029090028
ACCESSION NUMBER:		0001654954-24-013420
CONFORMED SUBMISSION TYPE:	8-K
PUBLIC DOCUMENT COUNT:		17
CONFORMED PERIOD OF REPORT:	20241028
ITEM INFORMATION:		Results of Operations and Financial Condition
ITEM INFORMATION:		Financial Statements and Exhibits
FILED AS OF DATE:		20241029
DATE AS OF CHANGE:		20241029

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			TOMI Environmental Solutions, Inc.
		CENTRAL INDEX KEY:			0000314227
		STANDARD INDUSTRIAL CLASSIFICATION:	INDUSTRIAL ORGANIC CHEMICALS [2860]
		ORGANIZATION NAME:           	08 Industrial Applications and Services
		IRS NUMBER:				591947988
		STATE OF INCORPORATION:			FL
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		8-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-39574
		FILM NUMBER:		241402813

	BUSINESS ADDRESS:	
		STREET 1:		8430 SPIRES WAY
		CITY:			FREDERICK
		STATE:			MD
		ZIP:			21701
		BUSINESS PHONE:		8005251698

	MAIL ADDRESS:	
		STREET 1:		8430 SPIRES WAY
		CITY:			FREDERICK
		STATE:			MD
		ZIP:			21701

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	Ozone Man, Inc.
		DATE OF NAME CHANGE:	20071130

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	RPS GROUP INC
		DATE OF NAME CHANGE:	19940818

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	DAUPHIN INC
		DATE OF NAME CHANGE:	19940818
</SEC-HEADER>
<DOCUMENT>
<TYPE>8-K
<SEQUENCE>1
<FILENAME>tomz_8k.htm
<DESCRIPTION>FORM 8-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:currency="http://xbrl.sec.gov/currency/2024" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:us-roles="http://fasb.org/us-roles/2024" xmlns:country="http://xbrl.sec.gov/country/2024" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:srt-types="http://fasb.org/srt-types/2024" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:srt="http://fasb.org/srt/2024" xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:tomz="http://tomz.com/20241028"><head><title>tomz_8k.htm</title><!--Document Created by XBRLMaster--><meta http-equiv="Content-Type" content="text/html"/></head><body style="text-align:justify;font:10pt times new roman"><div style="display:none;text-align:justify;font:10pt times new roman;" id="XBRLDIV"><ix:header><ix:hidden><ix:nonNumeric name="dei:EntityCentralIndexKey" contextRef="From2024-10-28to2024-10-28" id="ixv-307">0000314227</ix:nonNumeric><ix:nonNumeric name="dei:AmendmentFlag" contextRef="From2024-10-28to2024-10-28" format="ixt:booleanfalse" id="ixv-308">false</ix:nonNumeric></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="tomz-20241028.xsd"/></ix:references><ix:resources><xbrli:context id="From2024-10-28to2024-10-28"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-10-28</xbrli:startDate><xbrli:endDate>2024-10-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="USD"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="Shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="USDPShares"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit></ix:resources></ix:header></div><table style="font-size:1px;width:100%"><tbody><tr><td style="BORDER-BOTTOM: 5px solid;"/></tr><tr><td style="BORDER-BOTTOM: 2px solid;"/></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>UNITED STATES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>SECURITIES AND EXCHANGE COMMISSION</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Washington, D.C. 20549</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>&#160;</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span style="font-size:18pt">FORM <ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:DocumentType" id="ixv-328">8-K</ix:nonNumeric> </span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CURRENT REPORT</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Date of Report (Date of earliest event reported): <ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:DocumentPeriodEndDate" format="ixt:datemonthdayyearen" id="ixv-329">October 28, 2024</ix:nonNumeric></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;text-align:left;margin-left:auto;margin-right:auto;width:60%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span style="font-size:18pt"><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:EntityRegistrantName" id="ixv-330">TOMI Environmental Solutions, Inc.</ix:nonNumeric></span></strong></p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(Exact name of registrant as specified in its charter) </p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;text-align:justify;margin-left:auto;margin-right:auto;width:85%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;width:30%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen" id="ixv-331">Florida</ix:nonNumeric></strong></p></td><td style="width:5%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:30%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:EntityFileNumber" id="ixv-332">000-09908</ix:nonNumeric></strong></p></td><td style="width:5%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:30%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:EntityTaxIdentificationNumber" id="ixv-333">59-1947988</ix:nonNumeric></strong></p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(State or other jurisdiction </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">of incorporation)</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(Commission </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">File Number)</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(IRS Employer </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">Identification No.)</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:EntityAddressAddressLine1" id="ixv-334">8430 SPIRES WAY</ix:nonNumeric></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:EntityAddressCityOrTown" id="ixv-335">FREDERICK</ix:nonNumeric>, <ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" id="ixv-336">Maryland</ix:nonNumeric> <ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:EntityAddressPostalZipCode" id="ixv-337">21701</ix:nonNumeric></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(Address of principal executive offices, including zip code)</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(<ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:CityAreaCode" id="ixv-338">800</ix:nonNumeric>) <ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:LocalPhoneNumber" id="ixv-339">525-1698</ix:nonNumeric></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(Registrant's telephone number, including area code)</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Not Applicable</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(Former Name or Former Address, if Changed Since Last Report)</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">Check the appropriate box below if the Form 8-K filing is intended to simultaneously satisfy the filing obligation of the registrant under any of the following provisions (see General Instruction A.2. below): </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;text-align:justify;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:WrittenCommunications" format="ixt-sec:boolballotbox" id="ixv-340">&#9744;</ix:nonNumeric></p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Written communications pursuant to Rule 425 under the Securities Act (17 CFR 230.425)</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:SolicitingMaterial" format="ixt-sec:boolballotbox" id="ixv-341">&#9744;</ix:nonNumeric></p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Soliciting material pursuant to Rule 14a-12 under the Exchange Act (17 CFR 240.14a-12)</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:PreCommencementTenderOffer" format="ixt-sec:boolballotbox" id="ixv-342">&#9744;</ix:nonNumeric></p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act (17 CFR 240.14d-2(b))</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:PreCommencementIssuerTenderOffer" format="ixt-sec:boolballotbox" id="ixv-343">&#9744;</ix:nonNumeric></p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act (17 CFR 240.13e-4(c))</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><span style="text-decoration:underline">Securities registered pursuant to Section 12(b) of the Securities Exchange Act of 1934:</span></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;width:30%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Title of each class</strong></p></td><td style="width:2%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:30%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Trading </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Symbol(s)</strong></p></td><td style="width:2%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:36%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Name of each exchange </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>on which registered</strong></p></td></tr><tr style="height:15px"><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:Security12bTitle" id="ixv-344">Common Stock, $0.01 par value per share</ix:nonNumeric></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:TradingSymbol" id="ixv-345">TOMZ</ix:nonNumeric></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">The <ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen" id="ixv-346">Nasdaq</ix:nonNumeric> Capital Market</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">Indicate by check mark whether the registrant is an emerging growth company as defined in Rule 405 of the Securities Act of 1933 (&#167;230.405 of this chapter) or Rule 12b-2 of the Securities Exchange Act of 1934 (&#167;240.12b-2 of this chapter):</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">Emerging growth company <ix:nonNumeric contextRef="From2024-10-28to2024-10-28" name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox" id="ixv-347">&#9744;</ix:nonNumeric></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act. &#9744;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="font-size:1px;width:100%"><tbody><tr><td style="BORDER-BOTTOM: 2px solid;"/></tr><tr><td style="BORDER-BOTTOM: 5px solid;"/></tr></tbody></table><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="TEXT-INDENT: 0px;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td>&#160;</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Item 2.02</strong> <strong>Results of Operations and Financial Condition.</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On October 28, 2024, TOMI Environmental Solutions, Inc. issued a press release announcing its preliminary revenue for the third quarter ended September 30, 2024. A copy of the press release is attached to this Current Report on Form 8-K as Exhibit 99.1. No additional information is included in this Current Report on Form 8-K.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The information included in this Current Report on Form 8-K, including the exhibit hereto, shall not be deemed &#8220;filed&#8221; for purposes of, nor shall it be deemed incorporated by reference in, any filing under the Securities Act of 1933 or the Securities Exchange Act of 1934, except as expressly set forth by specific reference in such a filing.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Item 9.01 Financial Statements and Exhibits.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(d) Exhibits</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">See the Exhibit Index below, which is incorporated by reference herein.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;width:8%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Exhibit No.</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Description</strong></p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tomz_ex991.htm">99.1</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><a href="tomz_ex991.htm">Press Release dated October 28, 2024</a></p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">104</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Cover Page Interactive Data File (embedded within the Inline XBRL document)</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">2</p></td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td>&#160;</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>SIGNATURES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned hereunto duly authorized.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="width:50%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:3%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:35%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:12%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Date: October 29, 2024</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">By: </p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">/s/ Halden S. Shane</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Name: Halden S. Shane</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Title: Chief Executive Officer</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">3</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;</p></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.1
<SEQUENCE>2
<FILENAME>tomz_ex991.htm
<DESCRIPTION>PRESS RELEASE
<TEXT>
<html><head><title>tomz_ex991.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: justify; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 99.1</strong>&nbsp; </p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px"><img src="tomz_ex991img1.jpg"></p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS ANNOUNCES PRELIMINARY FINANCIAL RESULTS FOR THIRD QUARTER 2024 WITH CONTINUED PROFITABILITY AND GLOBAL MARKET EXPANSION</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">FREDERICK, MD, Oct. 28, 2024 (GLOBE NEWSWIRE) &#8212; TOMI Environmental Solutions, Inc.<sup style="vertical-align:super">&#174;</sup> (&#8220;TOMI&#8221; or the &#8220;Company&#8221;) (NASDAQ: TOMZ), a global company specializing in disinfection and decontamination, today announced &nbsp;preliminary financial results for Q3 2024, marking strong growth and two consecutive quarters of profitability. </p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">TOMI is expecting a 73% increase in revenue for the three months ended September 30, 2024 compared to the same period in 2023, along with a 14.5% increase for the first nine months of 2024 (YTD) as compared to the same period in 2023.&nbsp; Furthermore, as compared to the same period in 2023, BIT Solution sales are expected to increase 13% YTD and SteraMist mobile equipment sale is expected to increase by 90% YTD.&nbsp; The Company expects to report positive net income for the quarter.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">As previously announced, the Company expects to report its full third quarter 2024 financial results after the close of the financial markets on Wednesday, October 30, 2024, and will hold a conference call at 4:30 p.m. ET that day.&nbsp;&nbsp;The financial results in this press release are preliminary and subject to the completion of accounting and review procedures and are therefore subject to adjustment.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">A key sales highlight during the quarter was the Company&#8217;s expansion into India, a focus in TOMI&#8217;s global expansion strategy. &#8220;India is an important new market for us, and securing a foothold in such a competitive market highlights the strength of SteraMist iHP technology,&#8221; said E.J. Shane, COO of TOMI. &nbsp;&nbsp;&#8220;Furthermore, one of our key customers expanded their use of SteraMist iHP to a facility in South Africa, their fourth location in addition to facilities in Chile, Portugal, and Brazil.&nbsp; This customer is a global healthcare company that specializes in medicines for infusion, transfusion, and clinical nutrition, and we believe our continuing partnership will present additional opportunities for TOMI&#8217;s business development teams, who are actively pursuing additional facility deployments with this customer worldwide.&#8221; </p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">TOMI is also advancing into the consumer healthcare market through partnerships with industry leaders such as Edgewell Personal Care and Reckitt Benckiser Group PLC. &nbsp;&nbsp;&#8220;Working with these partners demonstrates the versatility of SteraMist across industries. We are unlocking new markets while continuing to serve our core segments,&#8221; added Dr. Halden S. Shane, CEO of TOMI. &#8220;We are expecting to report a 230% increase in international sales in Q3 2024 over Q3 2023, contributing to an 82% increase in international sales YTD. TOMI&#8217;s international expansion through our strengthened strategic partnerships position us as a disruptive force in the global disinfection market.&nbsp; Going forward, we remain focused on driving aggressive international growth and launching new products and programs while managing expenses. This disciplined approach contributed to the strength of the quarter and we remain keenly focused on continuing to delivering organic growth and profitability going forward,&#8221; stated Dr. Shane. </p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp; </p> <table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td class="hpbhr">&nbsp;</td></tr> <tr style="height:15px"> <td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">1</p></td></tr> <tr style="height:15px"> <td><p style='page-break-after: always'></p></td></tr> <tr style="height:15px"> <td>&nbsp;</td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>TOMI&#8482; Environmental Solutions, Inc.: Innovating for a safer world&#174;&nbsp;&nbsp;</strong></p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">TOMI&#8482;&nbsp;Environmental Solutions, Inc. (NASDAQ: TOMZ) is a global decontamination and infection prevention company, providing environmental solutions for disinfection through the manufacturing, sales and licensing of its premier Binary Ionization Technology &#174; (BIT&#8482;) platform. Invented under a defense grant in association with the Defense Advanced Research Projects Agency (DARPA) of the U.S. Department of Defense, BIT&#8482; solution utilizes a low percentage hydrogen peroxide as its only active ingredient and uses patented ionized Hydrogen Peroxide (iHP&#8482;) technology in all SteraMist systems to create superior disinfection. TOMI&nbsp;products are designed to service a broad spectrum of use sites, including, but not limited to, hospitals and medical facilities, biosafety labs, pharmaceutical facilities, commercial and office buildings, schools, restaurants, meat and produce processing facilities, and police and fire departments.&nbsp; </p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">For additional information, please visit <u>http://www.steramist.com/</u> or contact us at info@tomimist.com</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">Safe Harbor Statement under the Private Securities Litigation Reform Act of 1995&nbsp;&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">This press release contains forward-looking statements that are based on current expectations, estimates, forecasts and projections of future performance based on management&#8217;s judgment, beliefs, current trends, and anticipated product performance. These forward-looking statements include, without limitation, preliminary financial results for Q3 and our ability to expand international sales and market opportunities. Forward-looking statements involve risks and uncertainties that may cause actual results to differ materially from those contained in the forward-looking statements. These factors include, but are not limited to, our ability to maintain and manage growth and generate sales, our reliance on a single or a few products for a majority of revenues; the general business and economic conditions; and other risks as described in our SEC filings, including our Annual Report on Form 10-K for the fiscal year ended December 31, 2023 filed by us with the SEC and other periodic reports we filed with the SEC. The information provided in this document is based upon the facts and circumstances known at this time. Other unknown or unpredictable factors or underlying assumptions subsequently proving to be incorrect could cause actual results to differ materially from those in the forward-looking statements. Although we believe that the expectations reflected in the forward-looking statements are reasonable, we cannot guarantee future results, level of activity, performance, or achievements. You should not place undue reliance on these forward-looking statements. All information provided in this press release is as of today&#8217;s date, unless otherwise stated, and we undertake no duty to update such information, except as required under applicable law.</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">INVESTOR RELATIONS CONTACT:&nbsp;&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">John Nesbett/Rosalyn Christian&nbsp;&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">IMS Investor Relations&nbsp;&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">tomi@imsinvestorrelations.com</a>&nbsp;&nbsp;</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p> <table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td class="hpbhr">&nbsp;</td></tr> <tr style="height:15px"> <td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">2</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp; </p> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>3
<FILENAME>tomz-20241028.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 10/28/2024-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2024 I-NET Business Solutions, Inc. All Rights Reserved.-->
<schema xmlns:xl="http://www.xbrl.org/2003/XLink" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:currency="http://xbrl.sec.gov/currency/2024" xmlns:us-gaap-att="http://fasb.org/us-gaap/attributes" xmlns:sic="http://xbrl.sec.gov/sic/2024" xmlns:exch="http://xbrl.sec.gov/exch/2024" xmlns:invest="http://xbrl.sec.gov/invest/2013-01-31" xmlns:negated="http://www.xbrl.org/2009/role/negated" xmlns:naics="http://xbrl.sec.gov/naics/2024" xmlns:us-types="http://fasb.org/us-types/2024" xmlns:stpr="http://xbrl.sec.gov/stpr/2024" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:country="http://xbrl.sec.gov/country/2024" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:srt-types="http://fasb.org/srt-types/2024" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:srt-roles="http://fasb.org/srt-roles/2024" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:srt="http://fasb.org/srt/2024" xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:tomz="http://tomz.com/20241028" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://tomz.com/20241028">
 <annotation>
  <appinfo>
   <link:roleType roleURI="http://tomz.com/role/Cover" id="Cover">
    <link:definition>000001 - Document - Cover</link:definition>
    <link:usedOn>link:presentationLink</link:usedOn>
    <link:usedOn>link:calculationLink</link:usedOn>
    <link:usedOn>link:definitionLink</link:usedOn>
   </link:roleType>
   <link:linkbaseRef xlink:type="simple" xlink:href="tomz-20241028_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
   <link:linkbaseRef xlink:type="simple" xlink:href="tomz-20241028_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
   <link:linkbaseRef xlink:type="simple" xlink:href="tomz-20241028_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
   <link:linkbaseRef xlink:type="simple" xlink:href="tomz-20241028_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
  </appinfo>
 </annotation>
 <import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
 <import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" />
 <import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" />
 <import namespace="http://xbrl.sec.gov/country/2024" schemaLocation="https://xbrl.sec.gov/country/2024/country-2024.xsd" />
 <import namespace="http://xbrl.sec.gov/currency/2024" schemaLocation="https://xbrl.sec.gov/currency/2024/currency-2024.xsd" />
 <import namespace="http://xbrl.sec.gov/dei/2024" schemaLocation="https://xbrl.sec.gov/dei/2024/dei-2024.xsd" />
 <import namespace="http://www.xbrl.org/dtr/type/non-numeric" schemaLocation="http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd" />
 <import namespace="http://www.xbrl.org/dtr/type/numeric" schemaLocation="http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd" />
 <import namespace="http://xbrl.sec.gov/exch/2024" schemaLocation="https://xbrl.sec.gov/exch/2024/exch-2024.xsd" />
 <import namespace="http://www.xbrl.org/2009/arcrole/fact-explanatoryFact" schemaLocation="http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd" />
 <import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd" />
 <import namespace="http://www.xbrl.org/2009/role/net" schemaLocation="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd" />
 <import namespace="http://xbrl.sec.gov/naics/2024" schemaLocation="https://xbrl.sec.gov/naics/2024/naics-2024.xsd" />
 <import namespace="http://xbrl.sec.gov/sic/2024" schemaLocation="https://xbrl.sec.gov/sic/2024/sic-2024.xsd" />
 <import namespace="http://fasb.org/srt-roles/2024" schemaLocation="https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd" />
 <import namespace="http://fasb.org/srt-types/2024" schemaLocation="https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd" />
 <import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/types.xsd" />
 <import namespace="http://xbrl.sec.gov/stpr/2024" schemaLocation="https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd" />
 <import namespace="http://fasb.org/us-roles/2024" schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd" />
 <import namespace="http://fasb.org/us-types/2024" schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd" />
 <import namespace="http://fasb.org/srt/2024" schemaLocation="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd" />
 <import namespace="http://fasb.org/us-gaap/2024" schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd" />
</schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>4
<FILENAME>tomz-20241028_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 10/28/2024-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2024 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" roleURI="http://www.xbrl.org/2009/role/negatedLabel" />
  <link:roleRef xlink:type="simple" roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" roleURI="http://www.xbrl.org/2009/role/netLabel" />
  <link:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CoverAbstract_lbl" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityRegistrantName_lbl" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCentralIndexKey_lbl" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="dei_DocumentType" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentType_lbl" xml:lang="en-US">Document Type</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AmendmentFlag_lbl" xml:lang="en-US">Amendment Flag</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentPeriodEndDate_lbl" xml:lang="en-US">Document Period End Date</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFileNumber_lbl" xml:lang="en-US">Entity File Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xml:lang="en-US">Entity Incorporation State Country Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine1_lbl" xml:lang="en-US">Entity Address Address Line 1</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressCityOrTown_lbl" xml:lang="en-US">Entity Address City Or Town</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressStateOrProvince_lbl" xml:lang="en-US">Entity Address State Or Province</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressPostalZipCode_lbl" xml:lang="en-US">Entity Address Postal Zip Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CityAreaCode_lbl" xml:lang="en-US">City Area Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_LocalPhoneNumber_lbl" xml:lang="en-US">Local Phone Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Security12bTitle_lbl" xml:lang="en-US">Security 12b Title</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_TradingSymbol_lbl" xml:lang="en-US">Trading Symbol</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SecurityExchangeName_lbl" xml:lang="en-US">Security Exchange Name</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_WrittenCommunications" xlink:label="dei_WrittenCommunications" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_WrittenCommunications" xlink:to="dei_WrittenCommunications_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_WrittenCommunications_lbl" xml:lang="en-US">Written Communications</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SolicitingMaterial" xlink:label="dei_SolicitingMaterial" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SolicitingMaterial" xlink:to="dei_SolicitingMaterial_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SolicitingMaterial_lbl" xml:lang="en-US">Soliciting Material</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementTenderOffer" xlink:label="dei_PreCommencementTenderOffer" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_PreCommencementTenderOffer" xlink:to="dei_PreCommencementTenderOffer_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_PreCommencementTenderOffer_lbl" xml:lang="en-US">Pre Commencement Tender Offer</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementIssuerTenderOffer" xlink:label="dei_PreCommencementIssuerTenderOffer" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_PreCommencementIssuerTenderOffer" xlink:to="dei_PreCommencementIssuerTenderOffer_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_PreCommencementIssuerTenderOffer_lbl" xml:lang="en-US">Pre Commencement Issuer Tender Offer</link:label>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>5
<FILENAME>tomz-20241028_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 10/28/2024-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2024 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef  roleURI="http://tomz.com/role/Cover" xlink:href="tomz-20241028.xsd#Cover" xlink:type="simple" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/Cover" xlink:title="00000001 - Document - Document and Entity Information" />
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>6
<FILENAME>tomz-20241028_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 10/28/2024-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2024 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://tomz.com/role/Cover" xlink:href="tomz-20241028.xsd#Cover" xlink:type="simple" />
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/Cover" xlink:title="00000001 - Document - Cover Page Information">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract" xlink:label="loc_deiCoverAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="loc_deiEntityRegistrantName" />
    <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityRegistrantName" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="loc_deiEntityCentralIndexKey" />
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCentralIndexKey" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="loc_deiDocumentType" />
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentType" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="loc_deiAmendmentFlag" />
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAmendmentFlag" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="loc_deiEntityEmergingGrowthCompany" />
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityEmergingGrowthCompany" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="loc_deiDocumentPeriodEndDate" />
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentPeriodEndDate" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="loc_deiEntityFileNumber" />
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityFileNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="loc_deiEntityIncorporationStateCountryCode" />
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityIncorporationStateCountryCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="loc_deiEntityTaxIdentificationNumber" />
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityTaxIdentificationNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="loc_deiEntityAddressAddressLine1" />
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine1" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="loc_deiEntityAddressCityOrTown" />
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressCityOrTown" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="loc_deiEntityAddressStateOrProvince" />
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressStateOrProvince" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="loc_deiEntityAddressPostalZipCode" />
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressPostalZipCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="loc_deiCityAreaCode" />
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCityAreaCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="loc_deiLocalPhoneNumber" />
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiLocalPhoneNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="loc_deiSecurity12bTitle" />
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurity12bTitle" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="loc_deiTradingSymbol" />
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiTradingSymbol" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="loc_deiSecurityExchangeName" />
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurityExchangeName" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_WrittenCommunications" xlink:label="loc_deiWrittenCommunications" />
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiWrittenCommunications" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SolicitingMaterial" xlink:label="loc_deiSolicitingMaterial" />
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSolicitingMaterial" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementTenderOffer" xlink:label="loc_deiPreCommencementTenderOffer" />
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiPreCommencementTenderOffer" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementIssuerTenderOffer" xlink:label="loc_deiPreCommencementIssuerTenderOffer" />
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiPreCommencementIssuerTenderOffer" xlink:type="arc" />
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>7
<FILENAME>tomz-20241028_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 10/28/2024-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2024 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef  roleURI="http://tomz.com/role/Cover" xlink:href="tomz-20241028.xsd#Cover" xlink:type="simple" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" arcroleURI="http://xbrl.org/int/dim/arcrole/all" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#notAll" arcroleURI="http://xbrl.org/int/dim/arcrole/notAll" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/Cover" xlink:title="00000001 - Document - Cover Page Information">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract" xlink:label="loc_deiCover" />
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>8
<FILENAME>tomz_ex991img1.jpg
<TEXT>
begin 644 tomz_ex991img1.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  4$! 0$ P4$! 0&!04&" T(" <'
M"! +# D-$Q 4$Q(0$A(4%QT9%!8<%A(2&B,:'!X?(2$A%!DD)R0@)AT@(2#_
MVP!# 04&!@@'" \(" \@%1(5(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("#_P  1" !Q .<# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#[+HHHH **
M** "BBB@ HHHH ***3(H 6BDW"EH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH *XWXF:I>:+\)O%FKZ5<M;7UEI5S/!,@!,;K&Q5AGC@B
MNRKG/&GA^3Q5X"U[PU#<);2:K8S6:S.NX1ET*[B.^,T ?G!_PT3\:O\ HH%]
M_P!^XO\ XBC_ (:)^-7_ $4"^_[]Q?\ Q%>Q_P###_B#_H?=/_\  )__ (JO
M!OBM\.;CX5^.3X4NM5BU.46\=QY\49C7#YXP2?2@#6_X:)^-7_10+[_OW%_\
M11_PT3\:O^B@7W_?N+_XBN \/Z8^N>)=+T:.987U"[BM5E89"%W"[B.^,YKZ
MB_X8?\0?]#[I_P#X!/\ _%4 ?5WPWU*^UCX4>$]6U2X:ZOKS2;:>>9P 9)&B
M4LQQQR3747%S!:6[W%Q*L<2#<SL< "L/P;H<GA7P!H/AZXN%GDTFPALWG1=J
MN8T"E@#T!QFO//%GB236KQK>%R+&)OW:C_EH1_&?Z5YV-QD<+3YGJWLC.<^1
M&IKGQ'FWO#H4*H@X^TS+DG_=7M^/Y5PM]X@UR]8M=:O=R9["4JOY# J"0$G
M!)/  ZDUT&G_  _\1ZE&)I(8[.-AD&X8AC_P$ D?CBOEO;8O%2TN_);')><S
ME%U/4[>3?!J5W$P[K.P_K6_I/Q(\3:5(JW%PNI6XZI<?>Q[..?SS6K=?"K7E
MC+6]Y:7##^$[D)_'!%<'JVEZAH]X;34K.2VFZ@..&'J"."/I6R6*H>\[K\A/
MGAJ?0'AGQAI'BBV9K.0Q7,8S);2<.GO[CW%=/VKY*L[Z\TO4(=0T^X:WNH&W
M(Z]O8^H/<=Z^C?!OBBW\5^'TOE41W"'R[B('[CCT]CU%>_@L9[9<L_B_,Z*5
M7GT>Y9\77ESI_@;7]0LI3%=6VGW$T4@ )1UC8J>>."!7YQ_\-*?&_P#Z'RY_
M\!;?_P"-U^C7CK_DFWBC_L%77_HEJ_(FO5.@]<_X:4^-_P#T/ES_ . MO_\
M&Z^O_P!F#XE:U\1OA]JG_"3:D=0UK2[[9),R*A:%U#1DA0!U$@Z=J_.HQL$5
MRI"MG![''6OHS]CWQ-_8_P 9+GP]+)M@UVQ>-5)QF:+]XO\ XZ)1^- 'Z#51
MU*^M=+TJ[U*\?R[:TA>>5_[J*I9C^0-7J\7_ &G/$_\ PC/[/VNB.39<:L4T
MR+GKYA^<?]^UDH ^-[W]I;XS7&HW4]KXTFMH))6>.%;: B)220HS'G@<53_X
M:4^-_P#T/ES_ . MO_\ &Z\H56=@JJ2Q. !R2::0RL588(X(/:@#[]_93^(G
MC3X@Z?XJF\8:[)JSV4MLL!>*-/+#"3=]Q1G.T=?2NO\ VD?&/B7P+\(&UWPK
MJC:=J(OX8?.6-)#L;=D8<$=AVKR?]AW_ ) _CC_KO9_^@RUW?[87_)O[?]A2
MW_D] 'R=_P --?'#_H>I?_ *V_\ C=?1*^+?B5KG[)-A\4(?B#=:?K&G07<E
MR(K*!A?$7)1-V5PFU1CY1SGFOA6OT+^"/A6U\<?L:Z;X3OKJ:VMM22ZADE@Q
MO0?:Y#QD$=J ,#XB>)/BGX+^&OA!M'\>7>KZYK<DVIM/+9P(WD1V8F: *JX(
MR"<]>:OV?Q:\3>)?VB/"T>BZKY/@:^*V+0(J,MS<&Q^TN2V-P*F:)2 1ROUS
M[!J'PUTK4=6\%7UQ?7+#PG#-###A=ETLL @;S./[H[8ZFN=\/_ ?POX:M_"-
MOI>HZ@J^&=0N-0B9RA:YDF&UA(0HX"A5&,< 4 >OT444 %%%% !7YV?M@?\
M)P,G_8,MO_9J_1.OSL_; _Y.!D_[!EM_[-0!Y#\/_P#DJ'A/_L+VG_HY*_7&
MOR.^'_\ R5#PG_V%[3_T<E?KC0!R?C?4FL?#[PQOMEN6\L$=0O5OTX_&O(I>
ME>@?$24F\L8?X0CM^)(']*X2*'[3>06YZ2R+&?Q(%?#9I4E4Q3AVLD<55WE8
M]!\#>&8K>"/6+V(-<S#="&'^J3L?J?Y?C7H-1Q(L<:QQJ J@  =A7%>)/&36
MGF6^EJK2+PT[\JI_V1W^O3ZU]/3C2PE%1_ILZ5:$3I]3U73M'LVO-1NH[:(=
MW/)]@.I/L*X72=2L_B4_B&RO+7;I\'E+:[E D3(?,F>Q)'3TX/>O.->DO+B0
MW&I7,D]U(,@2-EE![G^[["NR^"J-YNO2=LPI^/SG^M<T<3]8K*FUIKI\C+VG
M--1Z'F.N:7=:/K%SI=U_K8'V[AT=>H8>Q&#72?"W7&TGQO%9.^+;4E\AAVWC
M)0_GD?\  JVOC)9I%KNFWRJ T\#1OCOL88_]"KS73+A[37M.NHSAHKJ)P?HX
MKSK>QQ-H]'^!S/\ =U-#Z:\<_P#)-O%'_8*NO_1+5^15?KKXX_Y)KXG_ .P5
M=?\ HEJ_(JOK#TCTX>&EO/V:8O%D4>9M.\42V4I':*6VA8$^P:/'_ JY?P+X
MDD\(?$+0/$T9(_LV^BN' _B0,-Z_BN1^-?1OP7\-_P#"7?L8_$K1DC\R?[=+
M<P#N9(H(95 ]R4Q^-?)E '[(PRQ7$$<\+B2*10ZLO(8'D&OB[]MCQ-YFL^&/
M!\,G%O#)J,Z@]2Y\N//T"2?]]5]!?L_>*/\ A+/@+X8OI)-]S:6_]GSYY(>$
M^6,^Y4*W_ J^#?CUXG_X2[X[>*=2CD\RV@NC8P$=-D(\O(]B5+?\"H A^!OA
ME?%OQP\+:3,NZV6Z%U<>GEP@RD'Z[,?C7GEPQ:ZF9NI<D_G7U7^QAX8^U>)_
M$WBZ9<I86:V,+'IOE.YB/<+&!_P*OE*;_CXD_P!X_P Z /M+]AW_ ) _CC_K
MO9_^@RUW?[87_)O[?]A2W_D]<)^P[_R!_''_ %WL_P#T&6N[_;"_Y-_;_L*6
M_P#)Z /SMK]+?V6?^3:?#/\ OW7_ *4R5^:5?I;^RS_R;3X9_P!^Z_\ 2F2@
M#VNBBB@ HHHH **** "OSL_; _Y.!D_[!EM_[-7Z)U^=G[8'_)P,G_8,MO\
MV:@#R'X?_P#)4/"?_87M/_1R5^N-?D=\/_\ DJ'A/_L+VG_HY*_7&@#SKXC0
M'SM/N.Q#QGZ\$?UKSY96M[B*X7EHG5Q^!S7LGBW3#JGA^>.)=T\?[V,#J2.H
M_$9%>,2=*^&S6E*GBN?H[/\ 0XJRM*Y[G>7D<GAV2\MFRDD.]&'HPX/ZUYG,
ML=O;3ZC(@<Q,(X4894R$$Y/J% SCN<5-X4\400V;:#JS;;60%89B>$S_  GT
M&>A[5>US0[R'2+:SMPMS)/=LT>P_>7R^.OT->M.K]9A&<.BU79FC?.KH\LU)
MVDD>21B[L2S,QR2?4U[%\+]';3?!D=Q,FV:_D-R<]=IX3] #^-<UI/PWU"^U
M&.;6E2"R0AFB#AGE_P!GC@#UYS7:>*/%VE^$]/*?))=E,0VB'GIP3C[JC_\
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
M!//O)EA3<>@W,0,\5G67C/PAJ5O-<:?XNTB]AMV2.62"_BD6-G.U Q#8!8\
M'J>E<)\=I/*T'PE)]JTZT*^)K,B;4UW6T9VR<RC<N5_$?6N4\61V/B+X<RZ+
MJFL>$M:M[S7-'M[B/PPGDXA>]C5A)B5SD@G:>,<T >[7VKZ5I<@74M4M++<A
MD'VB=8\J&52W)'&YT&?5@.XJ:ZOK.Q\C[5=0V_GR"&+S9 GF.02%7/4X!.!V
M!]*\ CT^\U[XFV_PM\:--=7=GX9U:P?4'7_D(64TEJ(+D'_GH C*_I)&2."*
MO^&=2U3QYJEDVN96?P)I5Q!J62</K#A[=F]#MBCD<>URM 'K5]XT\&Z9';-J
M7B[1;+[5"MQ;FXU"*/SHF^ZZ98;E/8C@U>FU_0K?0O[<GUJQBTG:'^W/<((-
MIX!\S.W'OFOG'P=:>*+J_P##1\(VWA^YOHOAMH[&'6H7=)/GGVJI0C;D]2<]
MN*7PO_PCMJ? %_KTT:Z&-2UB34X+R%8+72];D=2D#Q$E8@G^D+'DGD@@Y9:
M/H>W\4>&[O0SKUKX@TR?24;:U]'=QM IR!@R [0<D#&>I%7Y+RSCN[>SFNHH
M[FYW>3$\@#R[1EMHZG /..E?-'Q*_L/5M5\;-X;^R77AZ?3],MM;>R9?L\UX
MVI1"-2R\&40EPQ'(#)GM6S#>:AX;^,G@[PAXEDFF3PY;ZI<6.IS<_:].-NOE
MEG[RQ[3&_<[5?^*@#W[[9:?8WN_M47V:,,7EWC8H7(;)Z#&#GTP:RM6\9>$-
M"NQ9ZWXJTC2[AD$@AO+Z*%RIZ-AF!QP>:^8-)L_B+JWA"+X6))-]B\=6H\11
MZNHR+&TF4S7EM_O&5HU'J+@DUT&D>(I-6\9C7AK_ (-TQ]2\)Z+<2'Q)#YHD
M<_:=PB_>QXVMD-U_AZ4 ?15CKNB:G-#'INLV-Z\\'VJ);>X20R0[MOF+@G*;
MN-PXSQ534/&7A/265=4\5Z/8LTCP@7-]%&2Z8WK\S#E<C(ZC(SUKQ;6-/U+6
M/BM9ZUX3OM.N_$6C^%8+VQ?37V65ZPNI5FM\;F'ERKN49)VMM;.5K.M[O2_$
MW[-_Q<\1)8X%Q>:Q<0K>0!9K<M$N5(/*L",'W% 'OEKXM\+W]BVI6/B;2;JQ
M29;=KF*]C>-96P%0L&P&.X8'4Y'K6HUY:IJ4=BUU$MU+&TJ0%P)'12 S!>I
M+*">V1ZUX5\1=,_X2W6]+^'^A^%CJFGV&GMJFJ6]E+#:^7--&\%HQ9B!N7]]
M(!URD9[4SPSXYMKSQWX)U;Q=J=GI6IVF@:KI6J-=W,<02^AN;1)5R3C)*EP/
M[K ]* />KFYM[.TEN[RXCMX(5+R2RN$1%')))X 'K5+1O$?A_P 1V\ESX?US
M3]7@B;8\EE<I.J'T)4G!KC?B=<^'-9^%D\M]K7DZ-<W%J1JEJB74$#"X0I)*
M"=C0AU7?GC;G..M>2^(KZ^O+;QEI=NNAZYJKZ'#+<:SX2:2,R6"72":":$.X
M65HFF*$,20' QW /H72_%GA?7+Z>QT7Q)I>IW-N,RP6=Y',\8SCYE4DCGBKT
M.J:?<:?_ &E;7]O/8[6;[3'*K1X7.X[@<8&#GTP:\>\37W@G4M0^'T?P_N-)
MN-8CUBUDLAH[1EH; ?\ 'UG9]V'R=P(.!N*CKBH/A?KF@WG[/=OX7L];TZ76
MIK._ACTY;J,SLYDF(7R\[LX[8H ]H_M33UL[6\DU*V%M=LBV\QF79,7^X$;.
M&+9&,=>U8<7Q%^']Q=1P0>.O#\TTKB-(X]3@9G8G 4 -DG/:O(8_$&@ZQ\+/
MA#X?TG5K.^U5=1T0-8P3*\\7V<*T^^,'<OEB-MV0,8P:[2STC1U_:2U6-=,L
MU">%[*55$"#:WVNY^8<=>!S[4 =[<^(-!M='DUB^UJQM=.BD:-[N6Y18D96*
MLI<G (8%2,]013;?Q-X=NM!77+?7M.N-+9A&+V.ZC:$L6"A=X.W)8@8SU.*\
M$\+R:3;:MX*O/%C01^'DO/$:6\MW@6T>I'4W\LN6^4.8A,$+=]P')JMXZM?#
MFOZWXQM]#2VN_"M])X?L]4-FW^CSWS:FH<*R_*9/(90Y7D93/(H ^DYKNUCO
M8;*2ZB2XG5GBA,@#R!<;BJ]2!N7)'3(]:S])\5>%]<O+BST/Q)IFJ7-M_KH;
M.\CF>+G'S!22.>.:\#U"XO+7QQ;^"?&S:G=OH7AK6X_[1MEW7&HZ=*MN(IHR
M!S.%1T8==Z;NC"M'P;>6%KXS\"Z='J?A/Q?;^3-;Z5J&BQ_9;^QB^SDEYHD=
MD:(JH5ON@.R?+GH ?1%%%% !1110 4444 4KNQL=0@^S:A9P7D.<[)XQ(N?7
M!&*J6N@:+8AA9:/86P<JS"&V1-Q4Y4G ['D>AK8HH J^1;O=K<F%3.BE%D*C
M<%."0#UP<#\J([:WC:9HX(U\YM\FU0/,;&,GU. !SZ5:HH HQV=K;E6M[6&%
MEC6%2B!2$'11CL,G Z4R32]-FBN89;&WDBNSNN(VB4K,< 9<8^;@#KZ5HT4
M9MOI.EVFG+IMKIEK!8@Y6VCA58P<Y^Z!CKS4LUG:W#J\]K%,45E5I$#$!AA@
M,]B.OK5VB@"".*.%$2.-45%VJ%& H]!Z#@5F7'AWP]=;/M6@Z=/Y:[%\RUC;
M:O7 R.!R:VJ* ,^UTZPL0GV*SM[8(GEKY,2IM7.=HP.!DDX]33_L-GY$]O\
M9(?*N"S2IY8VR%OO%AWSWSUJ[10!42W@CFDGCAC227 =U4!FQP,GOCM5*ZT#
M0[YMU[HMA<DL7)FMT?+' )Y'4X'/L*V** *4-C9V]D+&.TABM0I00)&%0*>H
MVCC%1:;H^DZ/ \&D:7::=$[;V2U@6)6;U(4#FM*B@#,LM&T?3;BXNM.TFTLY
M[DYFEA@6-I3ZL0,G\:CA\/:!:WHOK;0]/ANE)83QVR*X)ZG<!FM>B@#+M]%T
M>UU.?5+72+*"_N/];=1VZ++)_O,!D_B:M>1#]K-SY*B<J$,F!N*@D@9ZXR3Q
M[U:HH SIM,T^XT^33Y["VFLY,^9;O$K1ODY.5(P<GGZTD.EZ;;V$>GVVGVT-
MG&08X(X56-"#D84# P>?K6E10!5:WA:Z2X:%&FC4JDA4;E!QD ]0#@?E56RT
M71M/NI[K3M(LK.XN.9I8+=(WE_WB!D_C6I10 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
(4 %%%% '_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>10
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.3</span><table class="report" border="0" cellspacing="2" id="idm45627666683840">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cover<br></strong></div></th>
<th class="th"><div>Oct. 28, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">TOMI Environmental Solutions, Inc.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000314227<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">8-K<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Oct. 28,  2024<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">000-09908<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation State Country Code</a></td>
<td class="text">FL<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">59-1947988<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address Address Line 1</a></td>
<td class="text">8430 SPIRES WAY<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address City Or Town</a></td>
<td class="text">FREDERICK<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address State Or Province</a></td>
<td class="text">MD<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address Postal Zip Code</a></td>
<td class="text">21701<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">800<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">525-1698<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Security 12b Title</a></td>
<td class="text">Common Stock, $0.01 par value per share<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">TOMZ<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_WrittenCommunications', window );">Written Communications</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SolicitingMaterial', window );">Soliciting Material</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_PreCommencementTenderOffer', window );">Pre Commencement Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_PreCommencementIssuerTenderOffer', window );">Pre Commencement Issuer Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_PreCommencementIssuerTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 13e<br> -Subsection 4c<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_PreCommencementIssuerTenderOffer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_PreCommencementTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 14d<br> -Subsection 2b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_PreCommencementTenderOffer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SolicitingMaterial">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 14a<br> -Subsection 12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SolicitingMaterial</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_WrittenCommunications">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br> -Section 425<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_WrittenCommunications</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>11
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
M Q0    (  U(75D'04UB@0   +$    0              "  0    !D;V-0
M<F]P<R]A<' N>&UL4$L! A0#%     @ #4A=63\F/:;N    *P(  !$
M         ( !KP   &1O8U!R;W!S+V-O<F4N>&UL4$L! A0#%     @ #4A=
M69E<G",0!@  G"<  !,              ( !S $  'AL+W1H96UE+W1H96UE
M,2YX;6Q02P$"% ,4    "  -2%U9M_*ZF4$$  !W$   &
M@($-"   >&PO=V]R:W-H965T<R]S:&5E=#$N>&UL4$L! A0#%     @ #4A=
M69^@&_"Q @  X@P   T              ( !A P  'AL+W-T>6QE<RYX;6Q0
M2P$"% ,4    "  -2%U9EXJ[',     3 @  "P              @ %@#P
M7W)E;',O+G)E;'-02P$"% ,4    "  -2%U9JL0B%C,!   B @  #P
M        @ %)$   >&PO=V]R:V)O;VLN>&UL4$L! A0#%     @ #4A=620>
MFZ*M    ^ $  !H              ( !J1$  'AL+U]R96QS+W=O<FMB;V]K
M+GAM;"YR96QS4$L! A0#%     @ #4A=6660>9(9 0  SP,  !,
M     ( !CA(  %M#;VYT96YT7U1Y<&5S72YX;6Q02P4&      D "0 ^ @
&V!,

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>12
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
..report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

..report table.authRefData a {
	display: block;
	font-weight: bold;
}

..report table.authRefData p {
	margin-top: 0px;
}

..report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

..report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

..report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

..report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
..pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
..report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

..report hr {
	border: 1px solid #acf;
}

/* Top labels */
..report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

..report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

..report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

..report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

..report td.pl div.a {
	width: 200px;
}

..report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
..report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
..report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
..report .re, .report .reu {
	background-color: #def;
}

..report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
..report .ro, .report .rou {
	background-color: white;
}

..report .rou td {
	border-bottom: 1px solid black;
}

..report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
..report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
..report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

..report .nump {
	padding-left: 2em;
}

..report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
..report .text {
	text-align: left;
	white-space: normal;
}

..report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

..report .text .more {
	display: none;
}

..report .text .note {
	font-style: italic;
	font-weight: bold;
}

..report .text .small {
	width: 10em;
}

..report sup {
	font-style: italic;
}

..report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.24.3</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>1</ContextCount>
  <ElementCount>22</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>0</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>3</UnitCount>
  <MyReports>
    <Report instance="tomz_8k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000001 - Document - Cover</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/Cover</Role>
      <ShortName>Cover</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>tomz-20241028.xsd</File>
    <File>tomz-20241028_cal.xml</File>
    <File>tomz-20241028_def.xml</File>
    <File>tomz-20241028_lab.xml</File>
    <File>tomz-20241028_pre.xml</File>
    <File doctype="8-K" isOnlyDei="true" isUsgaap="true" original="tomz_8k.htm">tomz_8k.htm</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="22">http://xbrl.sec.gov/dei/2024</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>17
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "tomz_8k.htm": {
   "nsprefix": "tomz",
   "nsuri": "http://tomz.com/20241028",
   "dts": {
    "schema": {
     "local": [
      "tomz-20241028.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd",
      "http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd",
      "https://xbrl.sec.gov/country/2024/country-2024.xsd",
      "https://xbrl.sec.gov/currency/2024/currency-2024.xsd",
      "https://xbrl.sec.gov/dei/2024/dei-2024.xsd",
      "https://xbrl.sec.gov/exch/2024/exch-2024.xsd",
      "https://xbrl.sec.gov/naics/2024/naics-2024.xsd",
      "https://xbrl.sec.gov/sic/2024/sic-2024.xsd",
      "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "tomz-20241028_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "tomz-20241028_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "tomz-20241028_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "tomz-20241028_pre.xml"
     ]
    },
    "inline": {
     "local": [
      "tomz_8k.htm"
     ]
    }
   },
   "keyStandard": 22,
   "keyCustom": 0,
   "axisStandard": 0,
   "axisCustom": 0,
   "memberStandard": 0,
   "memberCustom": 0,
   "hidden": {
    "total": 2,
    "http://xbrl.sec.gov/dei/2024": 2
   },
   "contextCount": 1,
   "entityCount": 1,
   "segmentCount": 0,
   "elementCount": 23,
   "unitCount": 3,
   "baseTaxonomies": {
    "http://xbrl.sec.gov/dei/2024": 22
   },
   "report": {
    "R1": {
     "role": "http://tomz.com/role/Cover",
     "longName": "000001 - Document - Cover",
     "shortName": "Cover",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "From2024-10-28to2024-10-28",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "strong",
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_8k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2024-10-28to2024-10-28",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "strong",
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_8k.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CityAreaCode",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentType",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address Address Line 1",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address City Or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address State Or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Incorporation State Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "dei_PreCommencementIssuerTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "PreCommencementIssuerTenderOffer",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pre Commencement Issuer Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "dei_PreCommencementTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "PreCommencementTenderOffer",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pre Commencement Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "Security12bTitle",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security 12b Title",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r0"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_SolicitingMaterial": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SolicitingMaterial",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Soliciting Material",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "TradingSymbol",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "dei_WrittenCommunications": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "WrittenCommunications",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Written Communications",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r1": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r2": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r3": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "13e",
   "Subsection": "4c"
  },
  "r4": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "14a",
   "Subsection": "12"
  },
  "r5": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "14d",
   "Subsection": "2b"
  },
  "r6": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "425"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>18
<FILENAME>0001654954-24-013420-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001654954-24-013420-xbrl.zip
M4$L#!!0    (  U(75FS>?I:AP0  (,6   1    =&]M>BTR,#(T,3 R."YX
M<V3-6,MNXS84W1?H/[#:M 4JR;([06PX&>0Q P3(I( S+;(K:)JVB<JD2E)^
M].M[2;UMR2/)64Q6I.\Y]ZU+,M./^TV(ME0J)OB-$W@#!U%.Q(+QU8T3*Q<K
MPIB#E,9\@4/!Z8USH,KY>/OC#].?7/?M?O:,'@6)-Y1K]" IUG2!=DROD1%]
MP4I3Z;HI^J_$S@0-O9$WN,Y_O\<*6();#@B#7/((^I!8(F(T6VHP\(?7_G P
M_#T'O8JEWF%)$99DS30E.I8X1 NJV(HC<!PE 4W0W<\$/:ZQW.!(T@WF)BAT
MM]5>KNM!1 ?)5FN-?B&_(F,&/;DOG[ZB^U@Q3I5"KR*,C2OJ-_3$B8?NPA#-
M#$.A&554;NDB5:?(&HP@R#!7DWUXXZRUCB:^O]OMO/U<AIZ0*XAD,/+?GAG_
MQTF1DBX;H5<^2#,@B:6$8AURM$4J2KR5V/J9U.8JHT!%5QA'+M8Z9RVQFEO]
MJ= 'H63S6$.=4YIBI-X(""KZZ9ZLZY%&4H$ROJ5*UX,3&<"#D3L(W%&0D3A=
MF0YKS,_8ER*D?@K+69@156_)BHY3I \15;7YL9(*7.E(-N0&)&5HQ>G=*',Y
M\-^^/+_:5G'R7H%VJ(,'X_'8M](,>H*L-I81S^'KRC6#E)W!,VZ^=%+!+XZ*
ME((_^(FP F6UT*L$RO+&%3'7LJEO$V&U)EJ>*3E(\VI(W52]7%31O-#RB%#1
M#V+?B UG8%IQ&)1-F69K,&5%55.4U4<,@@J0QYMO> ,(*AG)"8*WX CN'O'
MSUKGZT9&\[@H@[78_)<CS<8C8F,1P6!X[:!\M'P6<O-(ES@.P868_QOCD"V9
M^61I2,UA4@&4Q!K+%=4O>$-5A D]8PQ&,)IBSH6V1X?9PCZ*&%\*NT%3\WE,
M3*6^0H:06?PY>SI5:6?*@X!CTD$,AD^R3'2D2A9TR3BS=@;F+T!N<2ZZR#*F
M_C&TK"&&,_ /?FO7<#HI(%J_S=&0,E-($XO@D,1A1U+A30,G_2G+4CESV729
MT26R4VEB.NW&46P3A6:&V-_6]D SR72SVOP- 7K0,1G$*#\SE6S^CW.2&LY4
MP-E_HN5D:H(2$5&I&7R:Q6CTWR>F$,^[Q@04&GZ7P4 O=0WFJ/V^NY"@T[N&
M5/TXWCNBJ5^:1K"IC*HIQ".D1OQDTIT[M9,KY[,@5L\9BMFY&<\U/[G!$"Y:
MWEXM4O^Z>%"$ULV#C-?5@_J+2$O;&<$8_=#>7/T%I<ZF.D?)-K8Q>UBO7NO;
MF2]S\EU/!XK;2BO;&=PLVEML<85I4^PR\R4AFJ*/3:<%5Y=XTL^+?BXTO:-:
MY3_'VU7/"MAK=CKOX )(M$OW40CO9RWDX3/LVR4BE+*BY5.AY**RU#S\VKI3
M9KV;#QW2D3$NZHGR([954Q2$9-ES%!2O_U96,[A9M+?8^*HZ:_/D.>/34*M"
M1T_[Y0=D7_M6QZ6CL/P>;7+D6TR[5SW*7OQCHUW=,[Q=]<@\O#2[%[[\/$V2
MGZGIYT'WTM=ZT+'Z-<_ROGW7*^K2"_^"H.W_'*OVIWZB[_9_4$L#!!0    (
M  U(75E8R42!VP$  (L#   5    =&]M>BTR,#(T,3 R.%]C86PN>&ULC5-+
MCYLP$+Y7ZG^8TD-;J<9 >DA0V%4>>XB4[2'95GOUFB%8-79DFY#TU]<F2W:C
MMM)R0)CY7C,,T]MC(^& Q@JMBBB-DPA0<5T*M2NBUA)FN1 16,=4R:166$0G
MM-'MS?MWTP^$/,XW:UAJWC:H'"P,,H<E=,+5$$KWS#HTA#RC?YY]<LCB49R,
M+^_GS'J65CW'%]-+9>GU0%? @W)/31.:C6F69-\NH*VN7,<, C.\%@ZY:PV3
M4*(5.P4^.)P;RF'VB<.R9J9A>X,-4Z$IF!U<?-%:Z/W)B%WMX#/_ L$&5N3[
MW0/,6RL46@M;+=L0Q7Z%E>(QS*2$36!8V*!%<\#R64X*]2L/MR??'_A!*YL?
MK2BBVKE]3FG7=7$WBK79^7Z2E#[>K[>\]KF(4&'@'*.!%53^Q4LGDPGMJP/T
M+^3QR<C!8T2'.!YN16Y[N[7F_7#?0(/_(L*)## 27I$T(Z,T/MHR\M, .,_#
M:(D;K #"PX_-ZF+J=/,[YKJAH4 7VB^E#]ES:H-5$04 "5\D3;)QD/UX!7*G
MO5].*YJ]]-W15Y:<2=[*OL6U/U_A\>A0E5@.*L'\+9&<< &8G*\4R,M?\.HQ
M[-Z=\MB3WY5*^[T+(<[IIO1J/V[^ %!+ P04    "  -2%U9YHS"L),"  !$
M"   %0   '1O;7HM,C R-#$P,CA?9&5F+GAM;+U53VO;,!2_#_8=WKS#-I@L
M.UFA#4U'VNY02,=(M]%;4>276$R6@B0GZ3[])#GV$II",\AR"+;?[]][EJ7S
MS^M*PA*-%5H-DSS-$D#%=2'4?)C4EC#+A4C .J8*)K7"8?*(-OE\\?K5^1M"
M[B\G8[C6O*Y0.;@RR!P6L!*NA%"Z9=:A(62#_MGX#*"7]M/LM'M^R:QG:14Y
MOIAWE6NO!WH&/"A':I[1WBGM9;U/'>A.S]R*&01F>"D<<E<;)J% *^8*?'!H
M&AK Z!V'ZY*9BBT,5DR%IF"T=&FG=:47CT;,2P?O^0<(-G!#OG[Y#I>U%0JM
MA3LMZQ#%?H0;Q5,820F3P+ P08MFB<5&3@KU:Q#^IKX_\(-6=K"V8IB4SBT&
ME*Y6JW353[69^WZRG-[?CN]XZ7,1H<+ .28M*ZCLX^5G9V<T5EOH$^1Z:F3K
MT:=MG$[95PO7$;;!)[0I>J@5 QN3C36/[^$%#O L(MR1%D;"(Y+W2#]/U[9(
M_.  FM$9+7&",X!P\6-RTYDZ7?U.N:YH*- K[=>O#QDYI<'9, D $EY>GO5.
M@^S;'9![7/AU;$6UD'X0=,O2KZ#6=1]TV^.9]MJIA;Y.HG7I)0ROIT@*X3^3
M\ 4DL#':[JI3$<I1#Z4;#-TK<.S4G14I=,7$@9&?LH^>-_J0"JMI>-$'A=VE
M'CLID_*P?)%P[%1*N]&AP5K.?UR+.&.U=/^\&%OZ=F+_4"@1=K6QO]U)C6N'
MJL"BS1WD7K(+.>$",&M^.9"_9R2!B(1O;([^ )EI?Q@%[V;C:S-)S7>"R+#O
M:O-T?K9MW")/YWI)"Q3Q= P7<0ML)HCB(?J.IM89QEVK)-D49=1_\)A-$YOI
MT#WC"><:W3G8+OX 4$L#!!0    (  U(75FG[#*+!08  '<W   5    =&]M
M>BTR,#(T,3 R.%]L86(N>&ULS5M=;]LV%'T?L/]PYSUL R8K3H:A,9H.KIL.
MQMPDB-VMV# 4LD3;Q"32(.G8_O<CJ8]8$BDG04OI)7'$<R[/Y3VZHF3E]6_[
M)(8'Q#BFY*HWZ)_U )&01IBLKGI;[@4\Q+@'7 0D"F)*T%7O@'COMS???O/Z
M.\_[]/9^"N]HN$T0$3!F*! H@AT6:U!#'P(N$/.\#/UG.L\0SOL7_;-7Q?&W
M 9<L2C1'#@Z*D7<R'M EA"JRI@[._/-7_OG9^2\%:$:78A<P! $+UUB@4&Q9
M$$.$.%X1D,(A36@(HQ]">+<.6!)L&$H"HI*"T8/H%['&='-@>+46\&/X$ZAI
M8.+=7,_A[99C@CB'&8VW2@K_&28D[,,HCN%>,3C<(X[8 XJR<#$F_PW5CX7,
M#^1"$S[<<WS56PNQ&?K^;K?K[R[ZE*UD/F<#_].'Z2Q<2UT>)FK!0]3+62J*
MB3>XO+ST]6@.K2'W"Q;G<USXN1P)YWC(]713&NK%?0(-K CUEY?#/'7(&YQ[
M%X/^GD<]N1H Z7HP&J-[M 0M>B@.&^DHCI--K"3I8VN&EF8I,6.^XOL$K931
MU#27:IK!KVJ:[[/#TV"!XAXHY,?[B36KRU*LC.0_4>KS@M\AAFET3?)9OE"B
MU;!/%?]%IY^)@(D7+7F=[SB!.15!_"+IQTS'HF_0RU;[D>=ZE6771R];Y2/F
M5Q MZH*?O;2F-8W5H:G\5!*(]@*1"$6Y1!6@H>/J^+JQZ\A%;!J6HL:J=U-6
MSYO+J#HB1V%_11_\"&%]V50?//5!IRS_^#RF<@,P6G#!@E#DD7025SW#N%\6
MI' CEJN2E^ 3B64(/Z3R K<17GS<$I>,)L9)LYRI8?!SO"CXZ:+(*8PR2R"&
M.-VR$#VK'L=:;2N4Z4EBB5"[*$2\C[/>&XV!?W+4OZ_]QRA?O<371&!QN$<K
MK&8GXB9(D"$/,\Q-P9LDYG4W83I0_@9951>D4'C$@@*WX(6QW+#+7?)$MJ3]
M'^A@S:J&<^D&B\BR'2J@SOC!K,MBB P,&@T2[M02^1W<7$8TY%,>=F, DZ2\
M[L=C'2BW04ZURL4MLL(X+>U(3ANIJ=_'P<H@OC+NIKA&47EU2X,=**])3[6^
M!084J(5V?IT@ML)D]3NC.[$>TV03$'M3MZ!=MO9&P>4&;X1VP!BGU5F:?4Z!
ME ,9J9667SQ#4(_:&II;!>?V(F 46;T:E$ =L$>3+NOU(06#1(."M]!)WN,8
MW6R3!6)6RQ]#7/:,NK1RHW@<[T#Y+9(L+4'A( 6V4/,)"2G;4*8? \^$--Z8
M;N6&]#"FD?T^\03+I3.>E$#9+(V4SOCG*2HMEBI107,A(X-BM^"S>;"?1++-
MX25.OW(XT6BL>)?>.B&Z["H+N#-^:M9G<9(D09G57JL:19%<%9[]FF*"!M9D
MC5B7UFD06[:- =@9R]BU6>R2(8O?B@*#]KPREA]OV9SNR*D<CY$M^*0NU.B2
M1UC7/%)3=L(A"@^W#!2C/7_H2^,MNV/T 9/0OM^QP5MPBD6RT2X5;-<\8Y9W
MPCCI;D8Z)Z>UYYX[RD40_XTWC7ME,[@%YQCE&GU30G;--29Q)SR34D!RW&]_
M5:,;,118/%(>=O0%JT%2\?WJT5@'*F^04_MV55=:8MS75KT^%=^M*;$_-JE#
MW-38)BVO<W6\ [6V2*K66\- X]JX%YFA<,NDY0;GBSD6L>F<KD/<U-PF+:]Y
M=;P#-;=(JM8\AX'$@08ZK?F<!>HMTMDA65!3%I5Q-]4VBLI+71KL0)U->JI%
MSC"0@EHYJ:_WX5I*0I:79,PPMR>W26+U!#_&=*#X#;*L)WJ.=?^2S%]R?H'(
MF";)EF0/O;@A*PO.C1L:1>9V,((ZX(<F755#9%@H@]TV!QKC$ O9FC[(6T^&
M Z/'#2!'C<$JKV@+-40'3& 556L)!1!RI-/RWS&DS(=D$?2K/NI57G:[7!JW
M^TU@-W8X+3>WA1W9 7N<%%>UB23 ,0-2"FA.FX:9<+Y%[%FV,5!:,8]5NL5"
M-7SWC&23>-).*;'95<<'IO*3^E>P[!!._SWJS?]02P,$%     @ #4A=69NT
M<^.#!    B,  !4   !T;VUZ+3(P,C0Q,#(X7W!R92YX;6S%FEV/XC84AN\K
M]3^X]**MU! "VW8&S>R*8=@*E9E!0-M5;U8F.8!5QT:V^>JO[W'X6#Z2X%X4
MSP4#R7OL\SYVC$_"PX=URLD2E&92/%:B:JU"0,0R86+Z6%GH@.J8L0K1AHJ$
M<BG@L;(!7?GP_NNO'KX)@D]/@QYYEO$B!6%(6P$UD) 5,S-B3[U0;4 %P4[]
MQ[:?)JE7&]7:W>'X$]48)446@R>CPYEG;(_("8EMRUEH5 OK=V&]5G]W$ WE
MQ*RH D)5/&,&8K-0E),$-)L*@HF3K:$F:7T7D^<952F=*TBIL*9(:VFJA[;:
M<KY1;#HSY/OX!V*[(=W@M3,B3PO-!&A-AI(O;"KZ1](5<96T."<#&Z') #2H
M)22[YC@3?S?MRQC]$00M='.MV6-E9LR\&8:KU:JZ:E2EFJ*?6A1^>ND-XQGF
M%3!A@<=0V4?95O+BHOO[^S [NY=>*-=CQ?=]-,)].BC7K*FS[GHRSN ZA)%"
MA?T4[&6!/11$]: 15=<ZJ2 -0K8\E.0P@ FQ_W\?= ]]&IG^4XUE&MH385OB
MG,0<LY"9@LECQ0H".R!1K7YG6_WV1&0V<YR;FJ5SCN;"HQYQJ#7.SLQB#P^<
M!,#:@$@@V3=C>W?)R3!CA;7M7T2"+U=!0#(EZ=,IX!292)QNMN\MA7U67,8G
MB7 ["/+,L\U#8R(9:@UQ=2J780(LF__V308D@X$?/F?]ML;:*!J;?4N<CH%G
M[7]&S9DD_-]SZ@A$M1G E-D^A7FE*>2GEJ\\S?!X+%LJ)E(EH' 8]BWB"G R
M@I?S=*<(Y[A@"!/@@L$/@S]1,BTBM>,BKZ1[C ^[NAWA-KK!5:^+DWG]&VS*
M$%](G1A'WA@76+LIY/W5/<(6\]F>*IR0UCT@S3-R4Y(M[#VQ&7SD=)J/\DSB
MQ++A@66N%0_7?B<%-<4-SJ]*KLRL+=,Y%:4K0$& $^AWWM:!4IM>5H,^*":3
MCDCL/K5\63B3.J'^R>/ZD&O-P]S^R#B\+M+QEZU7WH0^5CFA_=G;++XTY($J
M5BY2S:7*L R1#K3E K]E-VV9E&[/K@0ZL?_%&WLGVQZ&8T37W00-L@G;EF+7
M9WQAB-,0W'D;@BM6/<!O)0E"TKM_6"%"5 8^5^X$_=X;]!*+_H"W\>V;&LF5
M<,!]+'8K5_S5A(7^_+'.UKHWU5=RR;;WE:X!OXAPH^ZO2BQWZ@]]7VI#^5]L
M?NVK-5_OAMU')7G=Y4VAV\NMI8 68SY5N('U45;F.;DI2GM#F/=G4I3NO"]5
M;DA]%)!%CFZ*=0CQ0N'81O7QR-X^SL=ZJ7+#ZJ-8+')T4ZPC1>W3G>$F'4N>
MS_1,X@;41XF8Z\7+).VLXQD54RB^7Y^O=&/KHP0L<W93Q']B%@9$6Z;I0NRJ
M()W/N$#J!ME'D5?J[;8367(6,X-7TPON"!6C!6M#GLZ-KX]ZKMC53>'V%=@A
M!MQA9P\3[#-4]3:9%.T5RO1NCTI\E'/77?J$WM5Z >J_HL^)<AL 'Y6=J^.+
M87@(+[ST\(#]5<;VC'VQOU1X_R]02P,$%     @ #4A=6?>=K^PE#P  CV$
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
M0=_BLE<>EY5V,F'9?^,.DU[P.^.U_P-02P,$%     @ #4A=61&Z!+2%#0
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
MO:/=>=Q]3]CN_?44_XOEZ;\!4$L! A0#%     @ #4A=6;-Y^EJ'!   @Q8
M !$              ( !     '1O;7HM,C R-#$P,C@N>'-D4$L! A0#%
M  @ #4A=65C)1('; 0  BP,  !4              ( !M@0  '1O;7HM,C R
M-#$P,CA?8V%L+GAM;%!+ 0(4 Q0    (  U(75GFC,*PDP(  $0(   5
M          "  <0&  !T;VUZ+3(P,C0Q,#(X7V1E9BYX;6Q02P$"% ,4
M"  -2%U9I^PRBP4&  !W-P  %0              @ &*"0  =&]M>BTR,#(T
M,3 R.%]L86(N>&UL4$L! A0#%     @ #4A=69NT<^.#!    B,  !4
M         ( !P@\  '1O;7HM,C R-#$P,CA?<')E+GAM;%!+ 0(4 Q0    (
M  U(75GWG:_L)0\  (]A   +              "  7@4  !T;VUZ7SAK+FAT
M;5!+ 0(4 Q0    (  U(75D1N@2TA0T  ,(I   .              "  <8C
F  !T;VUZ7V5X.3DQ+FAT;5!+!08     !P ' , !  !W,0     !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>tomz_8k_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2024"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="tomz-20241028.xsd" xlink:type="simple"/>
    <context id="From2024-10-28to2024-10-28">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2024-10-28</startDate>
            <endDate>2024-10-28</endDate>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Shares">
        <measure>shares</measure>
    </unit>
    <unit id="USDPShares">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <dei:EntityCentralIndexKey contextRef="From2024-10-28to2024-10-28" id="ixv-307">0000314227</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag contextRef="From2024-10-28to2024-10-28" id="ixv-308">false</dei:AmendmentFlag>
    <dei:DocumentType contextRef="From2024-10-28to2024-10-28" id="ixv-328">8-K</dei:DocumentType>
    <dei:DocumentPeriodEndDate contextRef="From2024-10-28to2024-10-28" id="ixv-329">2024-10-28</dei:DocumentPeriodEndDate>
    <dei:EntityRegistrantName contextRef="From2024-10-28to2024-10-28" id="ixv-330">TOMI Environmental Solutions, Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="From2024-10-28to2024-10-28" id="ixv-331">FL</dei:EntityIncorporationStateCountryCode>
    <dei:EntityFileNumber contextRef="From2024-10-28to2024-10-28" id="ixv-332">000-09908</dei:EntityFileNumber>
    <dei:EntityTaxIdentificationNumber contextRef="From2024-10-28to2024-10-28" id="ixv-333">59-1947988</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="From2024-10-28to2024-10-28" id="ixv-334">8430 SPIRES WAY</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="From2024-10-28to2024-10-28" id="ixv-335">FREDERICK</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="From2024-10-28to2024-10-28" id="ixv-336">MD</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="From2024-10-28to2024-10-28" id="ixv-337">21701</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="From2024-10-28to2024-10-28" id="ixv-338">800</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="From2024-10-28to2024-10-28" id="ixv-339">525-1698</dei:LocalPhoneNumber>
    <dei:WrittenCommunications contextRef="From2024-10-28to2024-10-28" id="ixv-340">false</dei:WrittenCommunications>
    <dei:SolicitingMaterial contextRef="From2024-10-28to2024-10-28" id="ixv-341">false</dei:SolicitingMaterial>
    <dei:PreCommencementTenderOffer contextRef="From2024-10-28to2024-10-28" id="ixv-342">false</dei:PreCommencementTenderOffer>
    <dei:PreCommencementIssuerTenderOffer contextRef="From2024-10-28to2024-10-28" id="ixv-343">false</dei:PreCommencementIssuerTenderOffer>
    <dei:Security12bTitle contextRef="From2024-10-28to2024-10-28" id="ixv-344">Common Stock, $0.01 par value per share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="From2024-10-28to2024-10-28" id="ixv-345">TOMZ</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="From2024-10-28to2024-10-28" id="ixv-346">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityEmergingGrowthCompany contextRef="From2024-10-28to2024-10-28" id="ixv-347">false</dei:EntityEmergingGrowthCompany>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
